【OC学习-12】什么是类的继承?为什么要继承?以及继承里面的注意事项

摘要:
怎样实现类的继承?某些东西能够反复利用,即父类有的东西,在子类里能够不用再写一次代码,直接继承父类的就可以。

(1)怎样实现类的继承?

//之前的继承根类,如类ASStudent继承自根类
@interface ASStudent:NSObject{
}
@end

//如今继承现有自己定义的类,如ASStudent继承自Student
@interface ASStudent:Student{
}
@end

(2)为什么要学习继承?

理由就是少些代码。某些东西能够反复利用,即父类有的东西,在子类里能够不用再写一次代码,直接继承父类的就可以。

(3)继承的一些注意事项

a:子类的实例变量不能和父类重名;

b:子类初始化出的对象能够调用自己的函数,也能够调用父类里的函数,由于都继承过来了;

c:父类的实例变量类型在子类里不变,子类仅仅能直接訪问父类的public和protected类型实例变量,父类和子类仅仅有public能够直接用->调用;

d:子类的方法能够覆盖父类的方法(假设方法名、參数个数、类型、方法返回值类型都一样时),子类的方法一般更具体具体,父类的方法更抽象。

e:多级继承下得初始化规则,一是应该又一次加载init;二是在自己类中写指定初始化方法;三是自己类的init方法调用自己类的指定初始化方法;四是自己类的指定初始化方法调用父类的指定初始化方法。否则会出现递归调用;

f:消息查找规则,先查找本类,然后往父类查找,须要注意的时有时候尽管用B类创建了b对象,用[b display]调用display方法,且display方法调用了父类[super display]方法,但对象还是本类对象,所以值还是本类的初始化的那个值。

免责声明:文章转载自《【OC学习-12】什么是类的继承?为什么要继承?以及继承里面的注意事项》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇echarts图表绑定数据python3去除行号下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OC项目加入swift第三方库遇到的坑

https://www.jianshu.com/p/96d868dcd69c 2017.07.07 16:23* 字数 295 阅读 5218评论 2喜欢 4 首先,在OC项目的Podfile文件中添加如下 use_frameworks! pod 'PromiseKit', '~> 4.2.2' #任意一个swift库 然后pod install 接...

OC输入输出

输入:scanf,注意scanf的指示符不加@ #import <Foundation/Foundation.h> #import "MyFirstClass.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"输入:");...

Ctrl+H 浪潮Raid配置文档

说明 本手册适用于LSI芯片Raid卡 包括但不限于Inspur 2008/2108 Raid卡、LSI 9240/9260/9261/9271 等Raid卡。 不同型号的Raid卡在某些功能上的支持性不同(例如Inspur2008 Raid卡需要有授权才支持Raid5),具体因您的配置而定。 Raid配置与管理 服务器开机自检到浪潮logo画面后,下一步...

SQL的OPENROWSET开启和使用方法

[转载]SQL的OPENROWSET开启和使用方法   1、开始 —>  所有程序  —>  Microsoft SQL Server 2005  —>  配置工具  —>  SQL Server外围应用配置器  —>  功能的外围应用配置器  —>  实例名  —>  Database Engine  —&...

ios-UIWebView中js和oc代码的互调

webview是ios中显示远程数据的网页控件,webview能显示的内容很多,MP4、文本、pdf等等; 关于js和oc代码的互相调用 1:oc中调用js代码; >>oc中调用js代码很简单,一个方法:stringByEvaluatingJavaScriptFromString:@“”; >>要执行的js代码方法到字符串中就可以了...

linux编程之信号量

一、概念 linux信号量:   允许多个线程同时进入临界区,可以用于进程间的同步。 和互斥锁(mutex)的区别:   互斥锁只允许一个线程进入临界区。 所在头文件:   semaphore.h 二、主要函数 初始化函数       int sem_init(sem_t *sem, int pshared, unsigned int value)    ...