JAVA.抽象类与接口的几个特点与异同

抽象

关键字:abstract
特点
1.抽象方法一定在抽象类中
2.抽象方法和抽象类都必须被abstract关键字修饰
3.抽象类不可以用new创建对象,因为抽象方法没有意义,创建抽象类对象会编译出错
4.抽象类如果被继承了,必须由子类复写起所有的抽象方法,建立子类
对象,如果子类只覆盖了部分抽象方法,那么子类还是一个抽象类。即子类如果不复写所有抽象方法,子类前面要加abstract。
5.抽象方法一定存在于抽象内中,但抽象类中不一定都是抽象方法
6.抽象类可以不定义任何抽象方法,那样做的意义就是不让该类建立对象

————————————————————
接口

关键字 interface 定义接口 implements 实现

1.接口中的成员都用默认的固定修饰符
常量:public static final
方法:public abstract
结构中的成员,都是被public修饰的
2.接口是不可以创建对象的,因为它的方法都是抽象的,没有实际意义的。
3.接口需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化。否则子类就是抽象类。
4.类与接口之间是实现,类与类之间是继承,接口与接口之间也是继承。
5.类在实现接口中的方法时,必须在方法前用public修饰,因为接口中的方法都是public修饰,覆盖时权限能大不能小。
6.类可以实现 多接口。因与继承不同的是,接口中的方法和变量都是抽象的,没有实际意义的,所以其中所有重名重复的属性都是相同的。
7.接口与接口之间可以多继承,理由同上
8.接口对于程序而言,能使程序拥有很强的扩展性

接口与抽象类的几个区别:
1.抽象类中不一定都是抽象方法,但接口中的变量和方法都一定是pubilc修饰的,抽象的
2.每个类只能继承一个抽象类,但能实现多个接口
3.接口和接口之间能多继承,而抽象类和抽象类之间只能单继承,因为可能存在非抽象方法,之间只能继承一个抽象类。
4.一般而言,抽象类中总结的是对象的 基本功能,就像人都会吃饭睡觉;而接口中总结的是 额外功能,就像不是每个人都会编java。

接口和抽象类的几个相同点:
1.之中都有抽象方法
2.都提升了程序的扩展性
3.都不能被创建对象

特点和异同有很多,小生只是列了几个比较重要或者明显的。

以上。

你可能感兴趣的:(java)