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.总结:可以用父类调用很多子类的方法