(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]方法,但对象还是本类对象,所以值还是本类的初始化的那个值。
时间: 2024-12-22 08:03:50