OC 继承

//
//  woman.h

#import <Foundation/Foundation.h>

@interface woman : NSObject{

    NSString *_name;
    NSString *_hobby;
    int _tui;
    int _age;


}
//方法
-(void)eat;
-(void)shopping;
-(void)play;

//get (取值)  set(赋值)
//set方法写法
-(void)setName:(NSString *)name;
-(NSString *)name;
-(void)setHobby:(NSString *)hobby;
-(NSString *)hobby;
-(void)setTui:(int)tui;
-(int)tui;
-(void)setAge:(int)age;
-(int)age;


-(instancetype)initWithName:(NSString *)name
                      hobby:(NSString *)hobby
                        tui:(int)tui
                        age:(int)age;



//便利构造器
+(woman *)womanWithName:(NSString *)name
                  hobby:(NSString *)hobby
                    tui:(int)tui
                    age:(int)age;





@end
   
//
//  woman.m

#import "woman.h"

@implementation woman

-(instancetype)initWithName:(NSString *)name
                      hobby:(NSString *)hobby
                        tui:(int)tui
                        age:(int)age{

    self=[super init];
    if (self) {
        _name=name;
        _hobby=hobby;
        _tui=tui;
        _age=age;
    }
    return self;
}



//便利构造器
+(woman *)womanWithName:(NSString *)name
                  hobby:(NSString *)hobby
                    tui:(int)tui
                    age:(int)age{

    woman *w=[[woman alloc]initWithName:name hobby:hobby tui:tui age:age];
    
    
    return w;
}






-(void)eat{
    NSLog(@"吃好吃的~~");

}
-(void)shopping{
    NSLog(@"买好的~~");

}
-(void)play{

    NSLog(@"玩好玩的");
}


-(void)setName:(NSString *)name{

    _name=name;
}
-(NSString *)name{
    return _name;
}
-(void)setHobby:(NSString *)hobby{
    
    _hobby=hobby;
}
-(NSString *)hobby{

    return _hobby;


}
-(void)setTui:(int)tui{

    _tui=tui;
}
-(int)tui{
    return _tui;

}
-(void)setAge:(int)age{

    _age=age;
}
-(int)age{

    return _age;

}


@end
                    

 

/*
 继承:
 继承优势:就是省代码,提高开发效率,增强程序的可扩展性和可修改性
 1,继承的上层(父类)superclass  继承的下层(子类)subclass
 
 2.继承具有单向性,如果a作为b的父类,则a就不能在成为b的子类
 
 3.继承具有传递性 (如果c继承b  b继承于a  则 c就具有a 和b 的所有内容)
 
 4.子类继承 父类的全部实例变量以及方法
 
 5.子类从父类继承过来的内容就是子类自己的,只不过这个内容来源于父类自己
 
 原则:当多个类中出现部分相同的特征和行为,可以将相同部分写成一个父类,其他类继承.
 
 */
[super eat];//它是一个编译器指令,获取父类里面对test方法的实现
    
    //[self eat];//调用子类自己的方法,(就是重写之后父类的方法),如果子类没有那么就直接找到父类的方法
    
    
    //self->它是'自己",一般情况下载+号方法中代表的是 类,在-号中代表的是对象
    


 

posted @ 2016-05-09 20:26  胡一波  阅读(147)  评论(0编辑  收藏  举报