类、抽象类与接口的区别
类与类之间只能单继承
类与接口之间可以多实现;
接口与接口之间可以多继承;
声明 | 变量 | 方法 | 和接口的关系 | 和类的关系 | 是否能构造对象 | |
类 | 使用class关键字声明,修饰符是 public | 可以采用任何合法的方式进行声明 | 可以采用任何合法的方式进行声明 | 多实现 | 单继承 | 可以直接构造对象 |
抽象类 | 使用 abstract class关键字声明,修饰符是 public | 可以采用任何合法的方式进行声明 | 如果抽象类中含有抽象方法,那么这个方法的声明必须是abstract.这个方法访问权限不能为private,不能使用final修饰方法,不能使用static进行修饰,抽象方法没有方法体。抽象类中可以没有抽象方法 | 多实现 | 单继承 | 不能直接构造对象,如果想要构造,必须由子类继承,然后再构造 |
接口 | 使用interface关键字声明,修饰符是 public | 接口中的变量必须是public static final 的,这个限定条件是默认的。 | 接口中的方法声明必须为 public abstract ,这个限定条件是默认的。 接口中定义的方法全部是抽象方法。 |
多继承 | 多实现 | 不能直接构造对象,如果想要构造,必须由子类实现,然后再构造 |