A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

继承与组合
继承:子类和父类的关系--->子类is父类
不能只为了继承而继承,要考虑两者的重属关系
使用场合:
如果一个类a需要拥有另一个类b的全部属性和行为,且两者属于同一类, 可以让a类继承b类,这样就可以让a类继承b类,a中只需要添加自己独有的方法和属性就可以了。
a是b;
组合:一个类里,包含另一个类的对象

                super的用法
表示:调用父类的方法

使用场合:
当子类重写父类的方法时,在某些情况下,只能调用父类方法的功能
注意:对象方法中只能调用父类对象方法,类方法只能调用类的对象方法
如果子类没有重写父类的方法,没有必要用super 用self就好。所以只有在子类重写父类方法的时候,我们调用父类方法,才使用super
属性不能用super,因为子类不能重写父类的属性
super只适用于方法

继承
继承的表现
多个类存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可,这种拥有另一个类的属性和方法的方式叫做继承
一个父类的子类可以有多个,但只有一个父类

继承要注意的问题
子类和父类不能有相同的成员变量(属性)
但子类可以拥有与父类相同一方法
父类必须声明在子类的前面

只支持单继承,不支持多继承
一个类只能有一个父类,不可以有多个父类,但支持多层继承
(继承体系:c继承b,b继承a)

定义继承需要注意:
不要仅为了获取其他类中某个属性能去继承。
类与类之间要有所属关系,这样才有继承
必须xx1is xx2
如果不属于同一类,就用组合

继承与组合
继承是一个类是一个类
组合是一个类含有一个类

继承的使用组合
1 两个类都拥有一部分相同的属性和行为,可以把公共的部分抽取成一个父类,然后二者都继承父类
2 一个类需要拥有另一个类的全部属性和行为,则让这个类继承另一个类,这个类本身再实现自己独有的属性和行为

组合的使用场合:
当两个类不属于同一类,但是又需要建立关联的时候,可以用组合

super
是一个关键字
有什么用?
可以在子类调用父类中被重写的方法
怎么用?
调用方法:[super 方法名];
什么时候用?
当子类重写父类的方法后,在某些情况下,又需要用到父类方法功能的时候
特点
1 只能类方法调用类方法,对象方法中调用对象方法
2 不能调用非重写的方法,不能调用属性,只能调用方法

多态:事物的多种形态
生活中的体现
人:警察,小偷
动物:狗,猫
代码的体现:父类的指针指向子类的对象
dog*d=[dog new]// 普通写法
animal*a=[dog new]// 多态

什么是多态?
父类的指针指向子类的对象
多态的作用
具有极强的扩展性.一个指针可以表示不同的子类对象 。

多态有什么局限?
父类的指针指向子类时,如果要调用子类的独有方法,必须强转.
没有继承就没有多态!!!
作用及优点:增强扩展性
1 一个类可以表示多种对象
2 如果方法参数中使用的是父类类型可以传入父类,子类对

局限性
父类类型的变量不能直接调用子类特有(重写的不算)的方法
必须强转为子类类型后,才能直接调用子类独有的方法.

                            NSString
NSString是foundation框架的一个工具类

// 扩展定义字符串


把每一个类的声明与实现分离,声明现在同名的.h文件中,实现写在同名的.m文件中,同一个类的两个文件同名,在实现的.m类中要导入要用到的声明文件,在其他文件中,如果要使用这个类,只需要把这个类的声明import过来的

1,command+方向左(右):吊饰到行首或行尾
选中代码->右击—>structure—>re-indent:格式化代码
command+/:注释代码/取消注释
删除一行:(不会保留空行)
1 选中一行的方式:连续按鼠标左键三次
2 把选中的那行按delete直接删除
方式二:会保留空行
1,把光标放在行首,
2 ,control+k  直接删除

移动一行:
1 ,把光标放到行的任意位置.
2,alt(option)+command+[或];表示上移动或者下移动

查看文档说明
选中一个方法或函数或类.....按option键,出现问号时,鼠标左击

进入一个类或方法或变量
进入一个方法或函数或类......按command出现下划线时,鼠标左击

2,断点试调 ->用于试调代码
可以检查(跟踪)代码执行过程中任意时刻变量的变化
执行方式:在想关注的那一行代码添加断点,如果有多行,就添加多个断点。
则 代码执行到这一行,会暂停,等待你操作,同时可以把鼠标放到任意变量上,看这一时刻这个变量的值,按下一个断点跳跃键,会执行到下一个断点,直到所有断点执行完
断点的三种状态:打开,关闭,删除
3 xcode注释
用法一
#pragma mark (Xcode独有的函数)<你的注释>
可以在方法预览栏里体现,同时支持快速跳转
用法二:
#pragma mark -name的set方法
在注释前加横杆表示把当前注释与上一个注释之间用做分割(用横线),这个可以用于注释分组

用法三:
放在代码之间,用于标注位置,方便快速跳转#pragma mark 这里没有写完,还需要完善

4,代码模版
作用:把一段复用性很高的代码,保存起来,成为一个模版
注意:要定义快捷键,代码模版描述清楚

评分

参与人数 1黑马币 +10 收起 理由
sd6628611 + 10 这逼我给满分

查看全部评分

9 个回复

倒序浏览
很好,顶一下
回复 使用道具 举报
很棒 顶一下
回复 使用道具 举报
厉害, 支持一下!
回复 使用道具 举报
顶一个哇,顶一个
回复 使用道具 举报
赞赞赞赞赞赞
回复 使用道具 举报
总结的很详细  支持一下
回复 使用道具 举报
整理的好全。支持一下!
回复 使用道具 举报
封装,继承,多态。。。。。
回复 使用道具 举报
巴错巴错,顶一哈~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马