学习面向对象编程,不得不提的一个特性就是多态,多态实现的方式就是方法的重写与重载。首先声明一下,在OC中是没有方法的重载的。
(一)方法重载
OC中没有重载这个概念,但是我们要知道重载是干什么的。重载就是在一个类中有多个方法,这几个方法的方法名相同,但是参数的个数或者类型不同,在调用的时候,编译器会根据传入的不同参数来决定调用哪个方法。
(二)方法重写
方法重写就是子类从父类继承了方法,然后改写该方法的实现,即重写方法体。我们来OC中简单实现方法重写。
(1)先新建一个父类Printer,继承自NSObject,在该类中声明并实现一个方法。
-(void)printer{
NSLog(@"我是打印机");
}
(2)再新建两个类ColorPrinter,BlackPrinter,两个类都继承自Printer类,然后在两个类的m文件中分别实现printer()方法,即重写。注意不需要声明。
-(void)printer{
NSLog(@"我是彩色打印机");
}
-(void)printer{
NSLog(@"我是黑白打印机");
}
(3)在main.m中实例化各自的对象,并分别调用printer