abstract class重点在“class”,class是对现实事物的抽象。事物 = 事 + 物,事就是动作、过程、某些属性(美、好、难以量化的),看的见摸不着;物就是被描述对象的具体形体(化学成分)、某些属性(三围,体重,可量化的),看得见摸得着。接口是一组“事”的集合,描述的是看得见摸不着的概念,而不描述看的见摸的着的概念,为啥平常都不建议在interface中定义属性呢?这是因为属性一般都是有“量”的,有“量”东西是摸得着的。 综上所述,abstract class 涵盖的内容比interface多。应该用abstract class时不能用interface代替;应该用interface时可以用abstract,但是这样抽象程度不高,分析问题是的干扰就多。 |
|