相同点:
1> 都可以在内部定义抽象方法。
2> 通常都在顶层。
3> 都不可以实例化,都需要子类来实现。
不同点:
1> 抽象类中可以定义抽象方法和非抽象方法,而接口中只能定义抽象方法。
2> 接口的出现可以多实现,抽象类只能单继承。也就是说,接口的出现避免了单继承的局限性。
3> 继承和实现的关系不一致。
继承:is a,谁是谁的一种,所属关系,具备体系中的基本功能。
实现:like a 像谁
对于抽象类和一般类:
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
该如何描述事物,还如何描述事物,只不过,该事物出现了一些不确定的部分,也是该事物的功能,需要明确出现。
但是无法定义主体。通过抽象方法来表示。抽象类比一般类多个了抽象函数。就是在类中可以定义抽象方法。
对于接口的理解:
可以认为是一个特殊的抽象类,当抽象类中的方法全是抽象的,那么该类可以通过接口的形式来表示。
接口是对外暴露的规则。
接口是功能的扩展。
接口的出现降低了耦合性
所以,扩展功能定义在接口中,接口没有特有数据,只是对于类功能的扩展,所需实现所有的抽象方法。
抽象类,它还是一个类,所以它有特有的数据和方法,只是有一些无法确定的部分,我们把它定义为抽象的,子类只需继承,并实现抽象的方法即可。
希望对楼主有帮助
|