连载三之OC面向对象编程中的继承

面向对象变成中的继承可以这样理解,即甲是乙;甲是子类,乙是父类。家拥有乙所有的属性和方法。而乙则是对公共属性和方法的一个综述。例子如下:

  main.m   

  

//

//  Truck.m

//  OC3_Inheritance_car_test1

//

//  Created by imac on 15/7/22.

//  Copyright (c) 2015年 zgq. All rights reserved.

//


#import "Truck.h"

#import "qudiaoshijianchuo.h"


@implementation Truck

#import "Car.h"

//set、get方法实现


//get

- (CGFloat)maxweight{

    return _maxWeight;

}


//set

- (void)setMaxWeight:(CGFloat)maxWeight{

    _maxWeight = maxWeight;

}


//自定义方法实现

#pragma mark Custom Method 声明



//自定义init方法实现

- (id)initWithBrand:(NSString *)brand

              Color:(NSString *)color

          Maxweight:(CGFloat)maxWeight{

            //调用父类方法

    //继承父类的ini方法同时初始化自己的maxWeight

    

    //self继承父类的属性

    self = [super initWithBrand:brand Color:color];//在父类中已经初始化一个值

    if (self) {

        _maxWeight = maxWeight;

    }

    return self;

}


//卸货方法

//导入Car.h头文件,即可使用父类的属性和方法

- (void)unload{

    NSLog(@"%@%@卸货!", _brand, _color);

}

@end



  Car.h  

//

//  Car.h

//  OC3_Inheritance_car_test1

//

//  Created by imac on 15/7/22.

//  Copyright (c) 2015年 zgq. All rights reserved.

//


#import <Foundation/Foundation.h>


@interface Car : NSObject

{

    //Car属性声明

    NSString *_brand;//品牌

    NSString *_color;//颜色

}


//Car方法声明


//get和set方法声明

#pragma mark -GET and SET


//get

- (NSString *)brand;

- (NSString *)color;


//set

- (void)setBrand:(NSString *)brand;

- (void)setColor:(NSString *)color;


//自定义方法声明

#pragma mark Custom Method

//刹车

- (void)brake;


//加速

- (void)quicken;


//自定义初始化方法声明

- (id)initWithBrand:(NSString *)brand Color:(NSString *)color;

@end



 Car.m  


//

//  Car.m

//  OC3_Inheritance_car_test1

//

//  Created by imac on 15/7/22.

//  Copyright (c) 2015年 zgq. All rights reserved.

//


#import "Car.h"

#import "qudiaoshijianchuo.h"


@implementation Car



//get和set方法实现

#pragma mark -GET and SET


//get

- (NSString *)brand{

    return _brand;

}

- (NSString *)color{

    return _color;

}


//set

- (void)setBrand:(NSString *)brand{

    _brand = brand;

}

- (void)setColor:(NSString *)color{

    _color = color;

}


//自定义方法声明

#pragma mark Custom Method

//刹车

- (void)brake{

    NSLog(@"%@%@刹车!", _color, _brand);

}


//加速

- (void)quicken{

    NSLog(@"%@%@启动!\n", _color, _brand);

}


//自定义初始化方法

- (id)initWithBrand:(NSString *)brand Color:(NSString *)color{

    self = [super init];

    if (self) {

        _brand = brand;

        _color = color;

    }

    return self;

}

@end



  子类:Taix.h  

  

//

//  Taxi.h

//  OC3_Inheritance_car_test1

//

//  Created by imac on 15/7/22.

//  Copyright (c) 2015 zgq. All rights reserved.

//


#import "Car.h"


@interface Taxi : Car

{

    //属性声明

    NSString *_company;

}


//getset方法声明

#pragma mark -GETSET方法

//get

- (NSString *)company;


//set

- (void)setCompany:(NSString *)company;


//Custom Method

#pragma mark Custom Method


//init自定义初始化方法

- (id)initWithBrand:(NSString *)brand

              Color:(NSString *)color

            Company:(NSString *)company;


//打印发票

- (void)printTick;

@end



  Taix.m  


//

//  Taxi.m

//  OC3_Inheritance_car_test1

//

//  Created by imac on 15/7/22.

//  Copyright (c) 2015 zgq. All rights reserved.

//


#import "Taxi.h"

//导入头文件,调用其属性和方法

#import "Car.h"

@implementation Taxi



//getset方法实现

#pragma mark -GETSET方法

//get

- (NSString *)company{

    return _company;

}


//set

- (void)setCompany:(NSString *)company{

    _company = company;

}


//Custom Method

#pragma mark Custom Method


//init自定义初始化方法

- (id)initWithBrand:(NSString *)brand Color:(NSString *)color Company:(NSString *)company{

    //self调用父类里的两个属性,并进行初始化

    //brandcolor指代上边的初始化传入的brandcolor

    self = [super initWithBrand:brand Color:color];

    if (self) {

        _company = company;

    }

    return self;

}


//打印发票

- (void)printTick{

    NSLog(@"%@%@%@打印发票!", _company, _color, _brand);

}



@end



Truck的写法与上边一样,就步一一阐述了。



更多博客更新有待下一期。。。敬请期待。

本文出自 “愤青时代” 博客,转载请与作者联系!

你可能感兴趣的:(return,import,连载,Copyright)