接口 Interface 与抽象类 abstract class 的区别

接口:spa

全部方法都是抽象方法,只能有成员变量,只能是方法的声明。且成员变量是默认的 public static final 类型,接口不能实例化本身。方法隐式指定是 public abstract 。通常状况下不在接口定义变量。对象

 

抽象类:继承

一个类含有抽象方法,就能够叫抽象类。抽象类类前必须使用 abstract 关键字修饰,能够有成员变量。能够声明普通方法与抽象方法。抽象类不能建立对象。抽象方法只有声明,没有具体实现。一个类继承抽象类,必须实现父类的抽象方法。若是不这么作,子类也是抽象类。接口

 

抽象方法:必须是 public 或者 protected ,不能是 private ,子类就不能继承了。变量

 

抽象类与接口区别:方法

  1. 抽象类在 Java 中表示是一种继承关系,一个类只能使用一次继承关系,一个类却能够实现多个接口。
  2. 接口与抽象类的方法、成员变量比较。
  3. 实现接口与抽象类的类必须实现其中全部方法。抽象类若是不实现全部抽象方法,子类仍是抽象类。接口也能够继承接口,此时不须要实现父类接口。
  4. 接口中的变量是默认的,必须给初值,因此实现类不能改变。
  5. 接口中方法只能是抽象方法 public abstract 方法,不能是 static 方法,static 方法是类方法,他不容许子类重写。
相关文章
相关标签/搜索