面向對象變成中的繼承可以這樣理解,即甲是乙;甲是子類,乙是父類。家擁有乙所有的屬性和方法。而乙則是對公共屬性和方法的一個綜述。例子如下:
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;
}
//get、set方法聲明
#pragma mark -GET和SET方法
//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
//get、set方法實現
#pragma mark -GET和SET方法
//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調用父類裏的兩個屬性,並進行初始化
//brand和color指代上邊的初始化傳入的brand和color
self = [super initWithBrand:brand Color:color];
if (self) {
_company = company;
}
return self;
}
//打印發票
- (void)printTick{
NSLog(@"%@的%@%@打印發票!", _company, _color, _brand);
}
@end
Truck的寫法與上邊一樣,就步一一闡述了。
更多博客更新有待下一期。。。敬請期待。