抽象类and接口
Java接口(interface)和Java抽象类(abstract class)代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。
1.抽象类里面可以包含抽象方法和非抽象方法(部分方法的实现)
package com.ww.shape; /* * 抽象类 */ public abstract class Shape { int x; int y; /* * 非抽象方法 */ public void calArea(){ System.out.println("形状的原点:("+x+","+y+")求面积..."); } /* * 抽象方法 */ public abstract void draw(); }
2.接口只包含抽象方法
package com.ww.plane; /* * 接口 在接口中所有方法都是抽象方法 可以省略abstract关键字 * */ public interface Plane { public static String NAME="a";//接口中只能定义常量final 接口中可以省略该关键字 public void fly(); public void land(); }
部分实现类
package com.ww.plane; /* * 实现类 * */ public class Jet implements Plane{ public void fly(){ System.out.println("喷气式飞机起飞........"); } public void land(){ System.out.println("喷气式飞机降落........"); } }
package com.ww.plane; /* * 操作类 * */ public class Director { public void orderFly(Plane p){ p.fly(); } public void orderLand(Plane p){ p.land(); } } package com.ww.plane; public class Test { public static void main(String[] args) { Director d=new Director(); Plane p=new Jet();//接口指向实现类对象 d.orderFly(p); d.orderLand(p); } }