抽象类和接口的使用区别-个人理解
个人理解:
抽象类是对类的抽象,具有相同属性的类的抽象。
比如人,人有身高,体重,跑,跳,说话等属性。就可以定义一个抽象类Person.
接口是对行为的抽象,具有相同行为的类的抽象。
比如人有程序员具有编程的行为,也有飞行员具有开飞机的行为。
定义方式有:
这两个概念都使用abstract class方式定义;两个概念都使用interface方式定义;一个概念使用abstract class方式定义,另一个概念使用interface方式定义。
显然,由于Java语言不支持多重继承,所以两个概念都使用abstract class方式定义是不可行的。后面两种方式都是可行的,但是对于它们的选择却反映出对于问题领域中的概念本质的理解、对于设计意图的反映是否正确、合理。
coderPerson和flyerPerson本质上是人。同时又具备各自的行为功能。
当new一个coderPerson,可以继承Person抽象类,说明这是一个人。
实现程序员的接口,可以有编程的行为(方法)。
当new一个flyerPerson,可以继承Person抽象类,说明这是一个人。
实现飞行员你的接口,可以有开飞机的行为(方法)。