黑马程序员——OC语言 三大特性之继承
Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
(以下内容是对黑马苹果入学视频的个人知识点总结)
三大特性之继承
(一)继承的基本用法
先建立个Animal再用Dog继承前面一个,可以拥有前面所有属性
@interface Animal : NSObject
{
int _age;
double _weight;
} - (void)setAge:(int)age;
- (int)age; - (void)setWeight:(double)weight;
- (double)weight;
@end
@interface Dog : Animal
@end
1.重写:子类重新实现父类中的某个方法,覆盖父类以前的做法
2.注意
1>子类方法和属性的访问过程:如果子类没有,就去访问父类的
2>父类被继承了还是能照常使用的
3>父类的静态方法
4> 画继承结构图,从子类抽取到父类
5>NSObject的引出:全部OC类的最终父类,包含了一些常用方法,比如+new
(二)继承的专业术语
1>父类\超类 superclass
2>子类 subclass\subclasses
(三)继承的细节
1>单继承
2>子类和父类不能有相同的成员变量
3>方法的重写
super关键字
super的作用
1>直接调用父类中的某个方法
2>super处在对象方法中,那么就会调用父类的对象方法
3>super处在类方法中,那么就会调用父类的类方法
4>使用场合:子类重写父类的方法时想保留父类的一些行为
(四)继承的好处
1>不改变原来模型的基础上,拓充方法
2> 建立了类与类之间的联系
3>抽取了公共代码
4>坏处:耦合性强
(五)继承的使用场合
1>它的所有属性都是你想要的,一般就继承
2>它的部分属性是你想要的,可以抽取出另一个父类
/*
僵尸 跳跃僵尸、舞王僵尸、铁桶僵尸
*/
#import <Foundation/Foundation.h>
// 僵尸
@interface Zoombie : NSObject
- (void)walk; + (void)test;
- (void)test; @end @implementation Zoombie
- (void)walk
{
NSLog(@"往前挪两步******");
} + (void)test
{
NSLog(@"Zoombie+test");
} - (void)test
{
NSLog(@"Zoombie-test");
}
@end // 跳跃僵尸
@interface JumpZoombie : Zoombie
+ (void)haha;
- (void)haha2;
@end @implementation JumpZoombie + (void)haha
{
[super test];
} - (void)haha2
{
[super test];
} - (void)walk
{
// 跳两下
NSLog(@"跳两下"); // 走两下(直接调用父类的walk方法)
[super walk];
//NSLog(@"往前挪两步----"); }
@end int main()
{
//[JumpZoombie haha];
JumpZoombie *jz = [JumpZoombie new]; [jz haha2]; return ;
}
黑马程序员——OC语言 三大特性之继承的更多相关文章
- 黑马程序员——OC语言 三大特性之多态
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- 黑马程序员——OC语言 类和对象
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)类 1)类的声明 代码编写 ①定义一个Car类,拥有2个属性:轮子数 ...
- 黑马程序员——OC语言 核心语法 (3)
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)分类Category 1) 基本用途 如何在不改变原来类模型的前提下 ...
- 黑马程序员——OC语言 核心语法(2)
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)id 1)简介:万能指针,能指向任何OC对象,相当于NSObject ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- 黑马程序员——OC语言 其他语法
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...
- 黑马程序员——OC语言 内存管理
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)计数器 每个对象内部都保存了一个与之相关联的整数,称为引用计数器,当 ...
- 黑马程序员——OC语言Foundation框架 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)结构体 NSRange(location length) NSPoi ...
随机推荐
- UBI系统原理分析【转】
转自:http://blog.chinaunix.net/uid-28236237-id-4164656.html 综述 UBI全称Unsorted Block Images,是一种原始flash设备 ...
- 双向循环链表的Java版本实现
1.单项循环列表 单向循环链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环.和单链表相比,循环单链表的长处是从链尾到链 ...
- 用andtoid studio获取天气数据并解析适配
1.申请拿到数据 可以用“聚合数据” 2.在android studio中导入需要的jar包 复制—>app—>libs—>粘贴—>右击—>Add As Library… ...
- Unity的旋转-四元数,欧拉角用法简介
当初弄不明白旋转..居然找不到资料四元数应该用轴角相乘...后来自己摸明白了 通过两种旋转的配合,可以告别世界空间和本地空间矩阵转换了,大大提升效率. 每个轴相乘即可,可以任意轴,无限乘.无万向节锁问 ...
- 从零开始学iPhone开发(1)——工具的使用
前提:已经具备了苹果电脑或者iMac,或者安装好了x86苹果而且已经联网. 苹果系统版本要求是:Max OS X Lion,或者 Mountain Lion 我们对iPhone进行使用的工具是XCod ...
- mysql 增删改查基本语句
增: insert insert into 表名(字段1,字段2,字段3......字段N) values(值1,值2,值3): 如果不申明插入那些字段,则默认所有字段. 在插入时注意,往哪个表增加, ...
- Python之SQLAlchemy学习--外键约束问题
以下问题赞为解决: # class User(Base):# __tablename__ = 'user'# #表的结构# id = Column(String(20), primary_key=Tr ...
- checkbox将选中的数据提交到后台
在项目中有些地方需要批量添加的数据,在这里使用到checkbox比较方便一些. 例如:我需要将多个包添加到同一个地区的 主要的前端代码: 这个是用来放checkbox的. <div id=&qu ...
- windows递归拷贝(或删除等操作)文件
SHFileOperation 以拷贝为例. CString strFrom = ....._T("src");CString strTo = ....._T("dest ...
- h.APR通道是个怎么回事
APR通道是Tomcat比较有特色的通道,在早期的JDK的NIO框架不成熟的时候,因为java的网络包的低效,Tomcat使用APR开源项目做网络IO,这样有效的缓解了java语言的不足,提供了一个高 ...