标签:
.m文件
//
// main.m
// Objective-c 继承
// Created by 非凡 on 15/10/10.
// Copyright (c) 2015年 非凡. All rights reserved.
//
#import <Foundation/Foundation.h>
//引入其他类的头文件是让你实力化的对象认识这是什么鬼
//引入Car头文件
#import "Car.h"
//引入zilei头文件
#import "zilei.h"
//引入Father头文件
#import "Father.h"
//引入Son头文件
#import "Son.h"
//引入chievement头文件
#include "chievement.h"
//引入Jisuan头文件
#include "Jisuan.h"
int main(int argc, const char * argv[]) {
NSLog(@"--------------------------------------------");
//父类
//创建对象或实例化对象
Car* _car=[Car new ];
//调用实例化后的方法
[_car setNumber:4];
[_car run];
//继承后的子类,子类可以继承父类的方法和属性
//创建对象或实例化对象
zilei* zx =[zilei new];
//调用实例化后的方法
[zx setNumber:5];
[zx setName:@"雪弗莱"];
[zx setSpeed:80];
[zx run ];
//父亲儿子跑跳练习
NSLog(@"--------------------------------------------");
//创建对象或实例化对象
Father* ability1=[Father new];
//调用实例化后的方法
[ability1 setNumber:2];
[ability1 run];
[ability1 jump];
//创建对象或实例化对象
Son* ability2=[Son new];
//调用实例化后的方法
[ability2 set_Number:1];
[ability2 run];
[ability2 jump];
[ability2 run];
//父类的指针指向子类,调用的是子类的方法
//多态应用
//多态以类作为参数,那么就只能输入类名,其他参数均无效
NSLog(@"-------------------------------------");
[ability2 duotai:ability1];
NSLog(@"--------------------------------------------");
//练习2练习封装(属性的封装)
//创建对象或实例化对象
chievement* perform=[chievement new];
//调用实例化后的方法
[perform setOc_achievement:30];
[perform setC_achievement:20];
[perform setZongfen];
[perform setPingjunfen];
[perform printf];
//调用返回值
// [perform setZongfen];
//[perform setPingjunfen];
//打印返回值
NSLog(@"总和为:%.2f 平均值为:%.2f",[perform setZongfen],[perform setPingjunfen]);
NSLog(@"--------------------------------------------");
//练习三
//创建对象或实例化对象
Jisuan* jieguo=[Jisuan new];
//调用实例化后的方法
// 输入参数
[jieguo setA:13 setB:5];
NSLog(@"和值为:%i,平均值为:%i",[jieguo Hezhi], [jieguo Pingjunshu]);
}
return 0;
}
zilei.h文件
#import <Foundation/Foundation.h>
//引入Car父类头文件,让子类知道Car是什么。
#import "Car.h"
//子类也可以有自己的属性和自己的方法
@interface zilei :Car{
NSString * name;
int Speed;
}
//设置属性
-(void)setSpeed:(int)newSpeed;
-(void)setName:(NSString*)newName;
//设置方法
-(void)run;
-(void)_run;
@end
zilei.m文件
//
// zilei.m
// Objective-c 继承
//
// Created by 非凡 on 15/10/10.
// Copyright (c) 2015年 非凡. All rights reserved.
//
#import "zilei.h"
@implementation zilei
-(void)run{
//super的意思是父类,super可以调用父类的方法
//[super run];
//self 的意思是本身,self可以调用本类中的方法
[self _run];
//NSLog(@"%i车是%@,的速度是%i",_number,name,Speed);
}
-(void)setSpeed:(int)newSpeed{
Speed=newSpeed;
}
-(void)_run{
NSLog(@"%i车是%@,的速度是%i",_number,name,Speed);
}
-(void)setName:(NSString *)newName{
name=newName;
}
@end
Father.m文件
#import "Father.h"
@implementation Father
-(void)setNumber:(int)newNumber{
number=newNumber;
}
-(void)run{
NSLog(@"父亲和儿子都能跑");
}
-(void)jump{
NSLog(@"父亲能跳%i米",number);
}
//多态用法
//当你将类作为参数类型时,就是对不同的方法及属性响应不同
-(void)duotai:(Father*)newduotai{
NSLog(@"父亲能跳%i米",number);
}
@end
标签:
原文地址:http://my.oschina.net/u/2483781/blog/516004