oc编程中继承的相关实例

继承是指一个对象直接使用另一对象的属性和方法(具体参考0基础C语言开发)。继承有两缺点:

(1)当层级越来越多时,假如每个层级都有实例变量,那么最下层的子类继承的实例变量会超级多,沉重;

(2)当消息传递自子类往上时,层级越多,效率越低下。

所以就有了组合。说实话区分继承和组合真不是那么容易。所谓两者是“is a"关系则是继承,两者是"has a"则是组合,还是模糊。其实,这两个概念无须区分十分明显,只需要记住:

a)组合和继承实现的功能差不多,但是实现的形式不一样,记住各自的形式即 可;

b)尽量用组合。

下 面举个例子,我们先创建一个ASPoint类,记录x和y坐标值。然后再创建一个ASRectangle类,记录这个长方形在坐标轴上得左下角坐标以及宽 和高,这里面的左下角坐标就可以用ASPoint类的一个对象来表示,所以说ASPoint类的一个对象是ASRectangle组合的一个部分。

(1)ASPoint.h


(2)ASPoint.m


(3)ASRectangle.h

(4)ASRectangle.m


(5)main.m


(6)结果:输出x和y坐标值

//就是创建这个对象时初始化赋的值

20,20

更多编程语言教程可登陆e良师益友网学习。

原文地址:https://www.cnblogs.com/yuguotianqing/p/4089112.html