連載三之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的寫法與上邊一樣,就步一一闡述了。



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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章