黑马程序员————OC面向对象_三大特性之继承与多态
来源:互联网 发布:apache mysql php集成 编辑:程序博客网 时间:2024/04/29 21:48
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、继承
有一个类A、类B,将类A的属性赋值于类B,那么类B继承类A
// Car继承NSObject@interface Car : NSObject@end
1.继承的好处
1)抽取了重复代码
2)建立了类之间的联系
3)特点:子类可以拥有父类中的所有成员变量和方法
2.注意点
1)基本上所有类的根类是NSObject
2)oc中不允许子类和父类拥有相同名称的成员变量
3)父类必须声明在子类的前面
4)调用某个对象/类的方法时,优先去当前对象/类中找,如果找不到,去父类中找
3.继承的使用场合
1)当两个拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中
2)当A类拥有B类中的部分属性和方法时,可以考虑让B类继承A类
4.组合
/* 区别: 继承:xxx是xxx 组合:xxx拥有xxx */
5.super关键字
super处于对象方法中,那么就会调用父类的对象方法;处于类方法中,那么就会调用父类的类方法
使用场合:子类重写父类的方法时想保留父类的一些行为
二、多态
1.前提:先有继承
2.多态:父类指针指向子类对象
// Dog继承animal,animal是Dog的父类 Dog *d = [Dog new]; animal *a = [Dog new];
3.局限性
多态限制:不能用父类指针型变量调用子类方法(虽然调用成功,但不规范)
非要调用:需强制转换
三、小结
1.只有利用类名调用类方法的时候,不需要在类名后面写*,其它情况下,类名后面一律统一加上一个*
Circle *c1 = [Circle new]; - (BOOL)isInteractWithOther:(Circle *)other;
2.返回值是BOOL类型的方法,方法名一般都以is开头
- [(BOOL)isInteractWithOther:(Circle *)other;
3.要想拥有某个对象,就先创建对象,然后再调用Set方法将对象传递给内部的成员变量
四、Xcode高级功能
#pragma mark Xcode特有的注释
1)用来标记注释
2)用来对方法进行分组
int main(){ #pragma mark 今天的代码写到这里 return 0;}
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
0 0
- 黑马程序员————OC面向对象_三大特性之继承与多态
- 黑马程序员——OC语言基础——面向对象三大特性之继承
- 黑马程序员————OC面向对象_三大特性之封装
- 黑马程序员_面向对象的三大特性之——继承
- 黑马程序员_面向对象三大特性之——多态以及异常概述
- 黑马程序员—OC语言面向对象三大特性
- 黑马程序员——OC面向对象三大特性——封装,继承,多态。
- 黑马程序员——OC面向对象三大特性——封装,继承,多态。
- 黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态
- 黑马程序员-OC之面向对象的三大特性:封装、继承和多态
- 黑马程序员——OC语言基础——面向对象三大特性之封装
- 黑马程序员——OC语言基础篇---面向对象之三大特性
- 黑马程序员——OC笔记之面向对象三大特征(封装、继承、多态)
- 黑马程序员——OC语言基础——面向对象三大特性之多态
- 黑马程序员——OC篇(二)面向对象的三大特性(封装、继承、多态)
- 黑马程序员_iOS开发之OC之面向对象之三大特性封装、继承和多态
- 黑马程序员——OC三大特性-6:继承
- 黑马程序员——OC基础——面向对象的三大特性(三)
- arp欺骗
- MySQL While循环语句
- 代码规范
- 1.用两个栈实现队列 2.用两个队列实现一个栈
- ECLISPE的快捷键大全
- 黑马程序员————OC面向对象_三大特性之继承与多态
- 手把手教你配置Android studio
- 对象使用中的线程安全和线程不安全问题
- Watch dogs的CTOS
- Redhat6 使用 yum源
- 【LeetCode】Factorial Trailing Zeroes 阶乘尾部0的个数
- struts2关联当前文件约束文档
- 关于JAVA IO操作中的AIO、NIO、BIO
- 关于项目里面关于邮件测试的事儿