09 多态
来源:互联网 发布:呜呼与嗟乎的意思 编辑:程序博客网 时间:2024/05/21 20:31
09 多态
Tags: Objective-C
多态直接贴代码解释吧,跟C++差不多。
GKHBase.h
#import <Foundation/Foundation.h>@interface GKHBase : NSObject- (void) base;- (void) test;@end
GKHBase.m
#import "GKHBase.h"@implementation GKHBase- (void) base { NSLog(@"这是父类的base方法");};- (void) test { NSLog(@"这是父类的test方法");}@end
GKHSub.h
#import <Foundation/Foundation.h>#import "GKHBase.h"@interface GKHSub : GKHBase- (void) sub;@end
GKHSub.m
#import "GKHSub.h"@implementation GKHSub- (void) sub { NSLog(@"这是子类的sub方法");}@end
main.m
#import <Foundation/Foundation.h>#import "GKHSub.h"int main(int argc, const char * argv[]) { @autoreleasepool { GKHBase *bc = [[GKHBase alloc] init]; [bc base]; [bc test]; GKHSub *sc = [[GKHSub alloc] init]; [sc base]; [sc test]; [sc sub]; //多态实现 GKHBase *bc1 = [[GKHSub alloc] init]; [bc1 base]; [bc1 test]; //因为bc1的编译类型是GKHBase,该类并没有提供sub方法,所以会导致编译错误 //[bc1 sub]; id bc2 = bc1; [bc2 sub]; //isKindOfClass:clazz方法判断对象是否是clazz或其子类的实例 NSLog(@"sc是否是GKHBase类及其子类的实例:%d", [sc isKindOfClass:[GKHBase class]]); NSLog(@"sc是否是GKHSub类及其子类的实例:%d", [sc isKindOfClass:[GKHSub class]]); } return 0;}
0 0
- 09 多态
- 【Java基础09_1】多态
- 09-java多态,抽象类,接口
- Java面向对象基础(封装,多态)=09/13
- Java基础-09总结final,多态,抽象类,接口
- 09-面向对象(多态-成员函数)1 10-面向对象(多态-静态函数)2
- 多态
- 多态
- 多态
- 多态
- 多态
- 多态
- 多态
- 多态
- 多态
- 多态
- 多态
- 多态
- UVALive 6918And Or(位运算)
- Difference between <b> and <strong>
- 06 KVC与KVO
- 07 类的初始化和重写description方法
- 08 继承
- 09 多态
- 10 包装类(NSValue和NSNumber)
- 11 类别(category)和扩展(extension)
- 12 协议
- 13 异常
- UVALive 6926Maximum Score(组合数学)
- 14 反射
- 15 手动内存管理
- 16 Foudation框架之NSString和NSMutableString