首先从多态的定义来说:
用一个父类的指针指向子类的对象,在函数(方法)调用的时候可以调用到正确版本的函数(方法)。
使用多态的条件:
1.子类必须重写父类的方法
2.父类指针指向子类对象
多态的应用场景:
用一个父类的指针指向子类的对象
//1.创建一个Human类
//Human.h
@property(nonatomic,strong)NSString *name ;
-(void)show ;
//Human.m
-(void)show{
NSLog(@”%@”,self.name);
}
//2.创建一个Student类,继承于Human类
//Student.h
@property(nonatomic,strong)NSString *stuID ;
-(void)display ;
//Student.m
-(void)show {
NSLog(@”————–”) ;
}
-(void)display {
NSLog(@”%@,%@”,self.name,self.stuID);
}
//3.创建一个Teacher类,继承于Human类
//Teacher.h
@property(nonatomic,strong)NSString *major;
-(void)print;
//Teacher.m
(void)show {
NSLog(@”*************”);
}
-(void)print {
NSLog(@”名字:%@,课程:%@”,self.name,self.major);
}