iOS关于重载和重写的区别的理解

高手们帮我教一下,iOS关于重载和重写的区别的理解
最新回答
爱是一场闹剧

2024-11-04 20:08:59

一、oc和swift的对比

1.严格来说oc是不支持的重载的,这个确实没有毛病的,而且根据个人理解也是不支持的,swift是支持重载的。

2.oc和swift都是支持重写的。

二、具体使用的对比

1.oc中的重载试验(图1):

很明显oc里面就是不可以重载,至于没有参数名的写法,例如:- (void)testMethod:(NSString*)str :(NSString*)str1;

这个本质对于oc来说我认为应该算是两个方法了,方法名字算不得相同(个人浅见)。

图2里面重载的时候增加了一个参数,但是其实就等于是改变了函数名(个人理解的方式),所以严格意义上来说不属于重载,在其子类中的重载就是重写了;swift就比较开放了。

2.关于重写,只能发生在父类和子类之间

在oc中的和swift中重写的概念一样。