Objective C多态
2015-07-03 17:04
501 查看
面向对象的封装的三个基本特征是、继承和多态。
包是一组简单的数据结构和定义相关的操作在上面的其合并成一个类,继承1种亲子关系,子类能够拥有父类定的成员变量、属性以及方法。
多态就是指父类中定义的成员变量和方法被子类继承,父类对象能够表现出不同的行为。
OC中的方法都是虚方法。执行时不看指针类型,依据生成对象的类型决定被调用的方法。
以交通工具为例,定义父类为Vehicle,两个子类Bicycle、Car都继承自它,都拥有父类的成员变量name、属性height以及实例方法run
在main.m中測试
执行结果为:汽车 2000
自行车 100
包是一组简单的数据结构和定义相关的操作在上面的其合并成一个类,继承1种亲子关系,子类能够拥有父类定的成员变量、属性以及方法。
多态就是指父类中定义的成员变量和方法被子类继承,父类对象能够表现出不同的行为。
OC中的方法都是虚方法。执行时不看指针类型,依据生成对象的类型决定被调用的方法。
以交通工具为例,定义父类为Vehicle,两个子类Bicycle、Car都继承自它,都拥有父类的成员变量name、属性height以及实例方法run
“Vehicle.h” @interface Vehicle : NSObject { NSString *name; } @property(assign, nonatomic)int weight; -(void)run; @end <span style="font-family:SimHei;">"Bicycle.h"</span> @interface Bicycle : Vehicle @end "Car.h" @interface Car : Vehicle @end分别实现Car和Bicycle中的run方法
@implementation Bicycle -(void)run { name=@"自行车"; self.weight=100; NSLog(@"%@ %d", name , self.weight); } @end
@implementation Car -(void)run { name=@"汽车"; self.weight=2000; NSLog(@"%@ %d", name, self.weight); } @end
在main.m中測试
#import <Foundation/Foundation.h> #import "Vehicle.h" #import "Car.h" #import "Bicycle.h" int main(int argc, const char * argv[]) { @autoreleasepool { Car *car=[[Car alloc]init]; Bicycle *bike=[[Bicycle alloc]init]; Vehicle *veh=car; [car run]; veh = bike; [veh run]; } return 0; }
执行结果为:汽车 2000
自行车 100
相关文章推荐
- [Objective-C] .m文件不能编译C++代码的问题
- 所闻所获1:动画效果的进度球(水面上升、水面涌动)
- Android 属性动画ObjectAnimator和ValueAnimator讲解
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第八章 继承
- [Objective-C] 复写NSObject的description方法
- Objective-C分类 (category)和扩展(Extension)
- Objective-C(九、Foundation框架和NSObject类)——iOS开发基础
- objective-c 中new与alloc/init的区别
- swift对比object-c
- 'dict' object has no attribute 'resolve'
- Objective-C 之 NSNotificationCenter vs delegate vs KVO
- Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释
- 【Effective Objective-C 2.0读书笔记】第四章:协议和分类
- Jackson框架提供的JsonGenerator ObjectMapper以及JSONObject 、JSONArray学习
- Objective C中数组排序几种情况的总结
- object-c 入门基础篇
- SSH Object类型转换
- objective-c中property 的属性strong,weak, retain, copy
- QObject对象 不指定父窗口的方法
- Java基础--多态、Object类、内部类、异常