在创建类时,是否存在何时使用继承以及何时将没有继承的新类导入另一个类的规则?
以下是一个例子:
我创建了一个名为Person
的类,然后创建了许多Person
个对象。
然后我创建一个名为House
的子类。使用继承和属性,我的所有Person
对象现在都可以拥有House
。
然后我创建了一个名为Car
的子类,因此我的Person
个对象现在都有House
个和Car
个。
依此类推......等等......
我现在有这个类序列:
NSObject<人<房子<汽车<新类<另一个新的等等。
通过上面的场景,我的逻辑(我是一个Objective-C初学者)告诉我,我有两种不同的方法来产生相同的结果:
Person
- 例如,House
的实例现在变为类型,然后导入Person
使用属性的对象。请原谅我缺乏术语和理解。如果需要,我可以上传代码示例,但更多的是关于何时何地不使用继承的一般性问题。
答案 0 :(得分:4)
这个问题并非特定于Objective-C:何时使用继承的指南对于所有面向对象的语言都是相同的,它基于可替代性,由{{3 }}:
如果S是T的子类型,则类型T的对象可以用S
类型的对象替换
换句话说,只有当你可以说“{derived} 是 {base}>”时才使用继承;当您为“{owner} 建立 {something}”进行建模时,请使用合成