-------------------------------------------------
(三)
Employee[] e = new Employee[10];
e[0] = new Manager();
这是多态特性!
-------------------------------------------------
(四)jdk1.5中
Employee doSomething(){
return new Manager();
}
返回值多态!
-------------------------------------------------
(五)
如果Employee和Manager中有如下代码:
class Employee {
public String name="张三";
public void m1(){
System.out.println("Employee::m1()");
}
}
class Manager extends Employee {
public String name="李四";
public void m1(){
System.out.println("Manager::m1()");
}
}
再使用如下代码时:
Employee e = new Manager();
System.out.println(e.name);
e.m1();
//结果会打印出“张三”和“Manager::m1()”。
这是多态中的动态绑定:JVM会自动找到对象e是由Manager类实例化而来的,所以有‘覆盖’时调用Manager中的方法;而属性则不会被动态绑定,所以一定是Employee 中的(e的数据类型被声明为Employee了)。