相信很多读者学过另一门面向对象的语言——java,在java中重载、重写、覆盖说的是一回事
但是在咱们Objective-C里面,只能另当别论了。
不过要说明的是,这方面也是仁者见仁,智者见智,也有观点认为OC中这三个也是一回事。
OC中方法不能重载,原因是OC中不能出现方法同名,这里所说的方法名指的是- (void)eatWithFood:这样的。
按照参数维度分析,下面分两种情况说明:
1. 方法的参数个数相等(返回值类型、参数类型相同),这样的同名方法不允许出现,会报错;
2. 方法的参数个数不相等,这样的方法名就不相同了,在OC中不算重载。
OC中的重写、覆盖是一个意思,指的都是子类对父类的方法进行重写,跟重载不是一个范畴的概念。