class Employee{
void expenseAllowance(){
System.out.println("in class Employee!"); }
}
class Manager extends Employee{
void expenseAllowance(){
System.out.println("in class Manager!"); }
}
public class ex{
public static void main(String args[]){
Manager man = new Manager();
Employee emp1 = new Employee();
Employee emp2 = (Employee)man;
man.expenseAllowance();
emp1.expenseAllowance();
emp2.expenseAllowance();
}
}
Employee emp2 = (Employee)man; 这个是什么意思?
还有如果把前两个类中的expenseAllowance()改成静态函数的话,输出为什么不一样了?求教~新人。
------解决方案--------------------
1. 将man引用的对象,强制类型转换为Employee类型。
2. 静态方法的话,是根据索引类型去执行方法的,因此以声明的类型为准(所以我们调用静态方法都是直接以 类名.静态方法名 的方式调用);非静态方法以实例化的对象为准,去操作方法。
------解决方案--------------------
与多态无关哦~