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 ;
}