接口,抽象类,种之间关系
对于初学者很难理解或者记忆[因为接口,抽象类,类在每个语言不同,所以没有什么道理,只是因为需要或者设计目的决定的],甚至很多做了一段时间JAVA人也没有理清楚三者间关系.
今天,我用通信的域的思想或者说是人类分范畴的思想
首先: 我们看二个词------
漂亮女人, 女人
外面可以理解漂亮是修饰女人的,外面称"漂亮"为限定词,也称为"窄化词语"
怎么理解? 比如定义 女人为集合A
漂亮女人为集合B
得出B 属于集合 A
因为漂亮这个词语是集合B元素小于A
其实都是废话,个人理解
结论 很熟很俗的答案: 漂亮女人是女人 女人未必是漂亮女人[马与白马,这里没有说女人不是漂亮女人是从生活角度看的]
废话结束!
我把: 接口归为一个范畴,
抽象类一个范畴, 类一个范畴 抽象类和类是兼容的范畴 接口和类以及抽象类不兼容
自然接口,抽象类,类自己是兼容的[集合A属于集合A]
于是如图所示:
结论:
范畴不同-->是extends只能一次
范畴相同-->是implement可以多次
二个范畴,接口一个范畴,类与抽象类一个范畴,本身皆自反
各自是自反的[离散数学]extends自己
接口[一个范畴]可以被抽象类,类[不同范畴]implement多次[范畴不同]
抽象类,类互相extends[范畴相同]
点击图片放大看 如有不妥请指出