面向对象变成中的继承可以这样理解,即甲是乙;甲是子类,乙是父类。家拥有乙所有的属性和方法。而乙则是对公共属性和方法的一个综述。例子如下:
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的写法与上边一样,就步一一阐述了。
更多博客更新有待下一期。。。敬请期待。
本文出自 “愤青时代” 博客,转载请与作者联系!