抽象类和接口的使用区别-个人理解

参考《java中抽象类和接口的作用与区别

个人理解:

抽象类是对类的抽象,具有相同属性的类的抽象。

比如人,人有身高,体重,跑,跳,说话等属性。就可以定义一个抽象类Person.

接口是对行为的抽象,具有相同行为的类的抽象。

比如人有程序员具有编程的行为,也有飞行员具有开飞机的行为。

 定义方式有:

这两个概念都使用abstract class方式定义;两个概念都使用interface方式定义;一个概念使用abstract class方式定义,另一个概念使用interface方式定义。 

显然,由于Java语言不支持多重继承,所以两个概念都使用abstract class方式定义是不可行的。后面两种方式都是可行的,但是对于它们的选择却反映出对于问题领域中的概念本质的理解、对于设计意图的反映是否正确、合理。

 

coderPerson和flyerPerson本质上是人。同时又具备各自的行为功能。

 

当new一个coderPerson,可以继承Person抽象类,说明这是一个人。

实现程序员的接口,可以有编程的行为(方法)。

 

当new一个flyerPerson,可以继承Person抽象类,说明这是一个人。

实现飞行员你的接口,可以有开飞机的行为(方法)。

 

posted @ 2017-05-11 17:28  深夜、程序、与烟  阅读(129)  评论(0编辑  收藏  举报