【《Objective-C基础教程 》笔记ch04】(五)OC中的继承inheritance机制

简介: 一、为什么需要继承                            使用继承一方面继承了父类的特性,另一方便解决了重复代码维护问题。 二、继承之语法          1、 @interface 子类名:父类名          2、 OC只支持单继承,不支持继承多个父类。

一、为什么需要继承



      

          

         使用继承一方面继承了父类的特性,另一方便解决了重复代码维护问题。


二、继承之语法

         1、 @interface 子类名:父类名

         2、 OC只支持单继承,不支持继承多个父类。

         3、 重构——移植和优化代码。


三、 继承的工作机制

          1、 方法调度




              子类拥有一个指向它父类的引用指针,消息传递时,OC的方法调度机制使用该信息来找到正确的实现方法,查找过程是现在子类中找,找不到再到父类中继续找。


          2、 实例变量

             1)继承实例源码

@interface  Shape : NSObject
{
    ShapeColor fillColor;
    ShapeRect bounds;
}
@end//Shape

@interface RoundedRectangle : Shape
{
    @private
    int radius;
}
@end//RoundedRectangle

                  2)继承机制下的内存布局图


             3)继承中的实例变量寻址机制

                  编译器使用“基地址加偏移”的机制实现对实例变量寻址


               

          3、 重写方法

                  子类可以重写父类中得方法,也可以通过super关键字作为父类方法调用的目标。



相关文章
|
Java iOS开发
Objective-C的继承与组合
Objective-C的继承与组合 Objective-C与Java继承上的区别 区别 Objective-C Java 成员变量 Objective-C继承不允许子...
870 0
|
存储 Java C语言
objective-c基础教程——学习小结
objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织;XCode使用介绍) 简介: 1.       objective-c是C语言的一个扩展集,主要由APPLE公司维护,是MAC系统下的主要开发语言。
1121 0
|
JavaScript C++ iOS开发
Objective-C 入门笔记
简介 建立在C语言之上,可以混编C/C++代码,编写一个类需要二个文件: .h的头文件 .m的实现文件(如果是C/C++混编文件,文件后缀为.mm) 既然有头文件,所以很多人会拿它与C++进行类比,它最重要的三个特性是:Message、Category、Protocol,与C++类比,二者之...
924 0
|
API iOS开发 Swift
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记9 Objective-c Compatibility
我们都知道在Swift诞生之前进行IOS开发一直使用Objective-c这门语言。OC和Swift之间需要一个桥接。
845 0
|
C语言 C++ iOS开发
【《Objective-C基础教程 》笔记ch02】(一)Hello Object-C 项目
一、项目实现步骤。 1、若xcode尚未运行,先启动它。 2、选择Select File --> New --> New Project菜单选项。 3、选择左边OS X下得application,再选中右边的command line tool,点击next。
988 0

热门文章

最新文章