章节五、5-接口和抽象类的区别

一、

接口 抽象类

接口里面所有的方法都是抽象的,只有方法声明,

没有方法体

抽象类里可以有非抽象方法,也可以有抽象方法
变量声明时默认用final修饰,即接口中默认都是全局常量 final可有可无
实现接口使用关键字implements 抽象类的实现使用关键字extends
接口只能继承另外一个接口 抽象类可以继承另外一个java类,并且可以实现多个接口
一个java类可以实现多个接口 一个java类只能实现一个抽象类

public static final修饰成员常量

public abstract 修饰成员方法,抽象的接口里面写

不写这些关键字,它们都默认存在,编译好的.Class文件里面全部知道补齐

不写修饰符,编译好的.class文件里不会有这些修饰符:

public static final 修饰成员常量

public abstract 修饰成员函数,抽象的

二、接口中只声明它有那些功能,声明它能做什么,就像草稿一样,先列出来要做些什么,但是具体的功能实现,具体怎么做,具体的细节,需要由实现它的类来完成。

三、抽象类和类相似,但是抽象类里面可以有抽象方法,普通类中不能用抽象方法。抽象类和接口也很像,但是抽象类里面可以有非抽象方法,但是接口中都是抽象方法。

四、抽象类里面的非抽象方法,在继承它的类里面可以重写这些方法。

五、抽象类是需要其它的类去继承它,所有继承它的类如果需要用到里面的方法,都需要实现这些抽象方法才能用,对于非抽象方法,也可以重写。

原文地址:https://www.cnblogs.com/luohuasheng/p/9559085.html