您的位置:首页 > 其它

用里氏代换原则来处理动画类的继承问题

2015-07-11 23:19 776 查看
1.里氏代换原则的基本原理:父类和子类在使用并没有什么区别,父类可以调用子类中的方法,而你看不出他们之间有什么区别。可以相互的替换,这才是核心的地方

2.设计中要确保父类可以直接调用子类的方法

3.将父类设计成虚类(设计的核心)

4.新建一个父类

@interface SourceView : UIView

- (void)show;

- (void)hide;

@end

#import "SourceView.h"

@implementation SourceView

- (void)show {

}

- (void)hide {

}

@end

4.1
再建 子类

#import "SourceView.h"

@interface ChildOneView : SourceView

@end

#import "ChildOneView.h"

@implementation ChildOneView

- (void)show {

NSLog(@"ChildOneView");

}

- (void)hide {

// todo

}

@end

#import "SourceView.h"

@interface ChildTwoView :SourceView

@end

#import "ChildTwoView.h"

@implementation ChildTwoView

- (void)show {

NSLog(@"ChildTwoView");

}

- (void)hide {

// todo

}

@end

4.2
调用

#import "ViewController.h"

#import "SourceView.h"

#import "ChildOneView.h"

#import "ChildTwoView.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[superviewDidLoad];

//要调用子类的方法只要改这个地方就可以了,方便

SourceView *tmpView = [[ChildTwoViewalloc] init];//或[[ChildTwoView alloc] init]

[tmpView show];

}

4.总结:可以用父类调用很多子类的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: