一、继承
有一个类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培训、期待与您交流! -------