用里氏代换原则来处理动画类的继承问题
1.里氏代换原则的基本原理:父类和子类在使用并没有什么区别,父类可以调用子类中的方法,而你看不出他们之间有什么区别。可以相互的替换,这才是核心的地方
2.设计中要确保父类可以直接调用子类的方法
3.将父类设计成虚类(设计的核心)
4.新建一个父类
@interface SourceView : UIView - (void)show; - (void)hide; @end
#import "SourceView.h" @implementation SourceView - (void)show { } - (void)hide {
4.1 再建 子类
@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 { [super viewDidLoad];
//要调用子类的方法只要改这个地方就可以了,方便 SourceView *tmpView = [[ChildTwoView alloc] init];//或[[ChildTwoViewalloc]init] [tmpView show]; }
4.总结:可以用父类调用很多子类的方法
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |