接口和抽象类的区别和联系

jdk1.7中,接口和抽象类的区别和联系

  1. 抽象类中可以有普通成员变量,接口中没有普通成员变量;接口中允许定义成员变量,但必须是常量。
  2. 抽象类中可以含有私有成员变量,接口中不含有私有成员变量。
  3. 抽象类和接口都可以包含静态成员常量(public static final)。
  4. 抽象类可以包含非抽象的普通方法,接口中的方法必须是抽象的。

jdk1.8之后,接口和抽象类的区别和联系

  1. 接口和抽象类中的方法可以有方法体。接口中的方法可以被default或static修饰,被修饰的方法必须有方法体,就是有{}.抽象类的普通方法是可以有方法体的。
public abstract class test1 {
    public int a;
    private int b;
    public static final int c = 1;
    public void select(){}
    abstract void sum(int x, int y);

}
public interface test1 {
    public static final int a = 1;
    public abstract void add();
    default  void move(){};
    static void select(){};
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务