我是 IOS 的新手,谁能告诉我 IOS 中方法重载和覆盖之间的区别是什么。我已经经历过这个但它是 java,我想知道 IOS 的相同之处( objective-c 或 swift,如果可能的话使用一些代码)
What is the difference between method overloading and overriding?
最佳答案
Overloading happens at compile-time while Overriding happens at runtime: 重载方法调用与其定义的绑定(bind)发生在编译时,但重载方法调用与其定义的绑定(bind)发生在运行时。
静态方法可以被重载,这意味着一个类可以有多个同名的静态方法。静态方法不能被覆盖,即使你在子类中声明了相同的静态方法,它与父类的相同方法无关。
最基本的区别是重载是在同一个类中完成的,而重载则需要基类和子类。重写就是对父类继承的方法进行具体的实现。
静态绑定(bind)用于重载方法,动态绑定(bind)用于覆盖/覆盖方法。
性能:与覆盖相比,重载可提供更好的性能。原因是重写方法的绑定(bind)是在运行时完成的。
private 和 final 方法可以重载,但不能被覆盖。这意味着一个类可以有多个同名的私有(private)/ final方法,但子类不能覆盖其基类的私有(private)/ final方法。
在方法重载的情况下,方法的返回类型无关紧要,可以相同也可以不同。但是,在方法覆盖的情况下,覆盖方法可以具有更具体的返回类型 ( refer this )。
方法重载时参数列表应该不同。方法重写中的参数列表应该相同。
重写需要继承,重载不需要。
关于ios - Ios方法重载和方法重写有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33366423/