抽象类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);
    }
}