Java里的多态和重载与C++里的基本一致。 多态指的是子类可以对父类的方法进行重写,在程序运行时,根据具体的情况(引用对象具体的类型)来选择调用相应的方法。
《HeadFirst ——Java》中的一个练习题,很好的体现多态的关系。
<span style="font-size:18px;">package exercise;
class A {
int var = 6;
void m1() {
System.out.print("A'm1, ");
}
void m2() {
System.out.print("A'm2, ");
}
void m3() {
System.out.print("A'm3, ");
}
}
class B extends A {
int var = 7; //
void m2() {
System.out.print("B'm2, ");
}
}
class C extends B {
int var = 8;
void m3() {
System.out.print("C'm3, ");
System.out.print(var+7);
}
}
class PolymorphicTest {
public static void main(String arg[]) {
A a = new A ();
B b = new B();
C c = new C();
A a2 = new C();
// C c2 = new B();//wrong
B b2 = new B(