连载三之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的写法与上边一样,就步一一阐述了。
更多博客更新有待下一期。。。敬请期待。
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的写法与上边一样,就步一一阐述了。
更多博客更新有待下一期。。。敬请期待。
相关文章推荐
- 解决ie动态修改link样式,import css不刷新的问题
- css import与link的区别
- Flex include和import ActionScript代码
- PHP中return 和 exit 、break和contiue 区别与用法
- 浅析return false的正确使用
- js怎么终止程序return不行换jfslk
- phpmyadmin导入(import)文件限制的解决办法
- 解析php中die(),exit(),return的区别
- c语言中return与exit的区别浅析
- Thinkphp中import的几个用法详细介绍
- Ruby中的return、break、next详解
- 浅析echo(),print(),print_r(),return之间的区别
- PHP return语句另类用法不止是在函数中
- PowerShell中使用return语句退出函数例子
- javascript中的return和闭包函数浅析
- return false;和e.preventDefault();的区别
- JavaScript中return false的用法
- php中return的用法实例分析
- Powershell的break、continue和return简单总结
- PHP return语句的另一个作用