Hai*_*yen 6 oop polymorphism overriding overloading
我环顾四周,找不到任何类似的问题.
这是我从维基百科得到的段落:
多态性与方法重载或方法重写不同.多态性仅涉及将特定实现应用于接口或更通用的基类.方法重载是指在同一个类中具有相同名称但签名不同的方法.方法重写是子类替换其父级方法中的一个或多个的实现.方法重载和方法重写都不是多态的实现.
任何人都可以在这里更清楚地解释它,特别是"多态性与方法重写不同"的部分吗?我现在很困惑.提前致谢.
多态性(非常简单地说)可以使用期望基类的派生类:
class Base {
}
class Derived extends Base {
}
Base v = new Derived(); // OK
Run Code Online (Sandbox Code Playgroud)
另一方面,方法覆盖就像Wiki所说的一种改变派生类中方法行为的方法:
class Shape {
void draw() { /* Nothing here, could be abstract*/ }
}
class Square extends Shape {
@Override
void draw() { /* Draw the square here */ }
}
Run Code Online (Sandbox Code Playgroud)
重载与继承无关,它允许定义更多具有相同名称的函数,这些函数仅在它们所采用的参数中有所不同.