先说一下抽象类和接口的不同:
存在就是合理的,java语言的设计者为什么要有这两个设计呢?
从理念上来看,抽象类是对对象的抽象,具有类的特征,接口更多的是对功能的抽象。抽象类和其派生类在概念本质上是相同的。接口的实现类除了实现接口规定的“约定”和“契约”之外,可以与接口没有任何关系。
这样说吧:在实际应用中,如果对象的行为是对象的固有特征,则应使用抽象类来对其进行抽象,否则,应该使用接口来对其加以抽象。
承接二楼的说法,举个栗子:“人”是一个抽象类,但并不是每个人都有加入黑马学好java的想法,因此加入黑马就不是所有人的固有特征,因此“加入黑马”不能用抽象类来进行抽象,只能用接口对其抽象。加入黑马这一接口本质上包括一系列关于入学的规定,这就相当于前面提到的“约定”和“契约”。那这一接口的实现类只需要完成这些“约定”和“契约”,别的可以与这一接口没有关系~ |