您的位置:首页 > 编程语言

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

2015-07-30 08:38 288 查看
面向对象变成中的继承可以这样理解,即甲是乙;甲是子类,乙是父类。家拥有乙所有的属性和方法。而乙则是对公共属性和方法的一个综述。例子如下:
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的写法与上边一样,就步一一阐述了。

更多博客更新有待下一期。。。敬请期待。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息