//employee class
public class Employee {
protected String psrn;
public Employee(String n)
{
psrn =n;
}
public String getPSRN()
{
return ("Emp:"+psrn);
}
void computeSimilarity(Employee t)
{
System.out.println("Emp::compute---"+t.getPSRN());
}
}
//student class
public class Student extends Employee{
public Student(String n) {
super(n);
// TODO Auto-generated constructor stub
}
public String getPSRN()
{
return("Std:"+psrn);
}
void computeSimilarity(Student t)
{
System.out.println("Std::compute---"+t.getPSRN());
}
}
//tester class
public class Tester {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee e0=new Employee("0");
Employee e=new Student("1");
Student s=new Student("2");
e.computeSimilarity(s);
s.computeSimilarity(e);
s.computeSimilarity(s);
s.computeSimilarity(e0);
}
}
輸出出來是:爪哇多態性:非最終方法調用
的Emp ::計算---標準:2
的Emp ::計算---標準: 1
的std ::計算---標準:2
的Emp ::計算---的Emp:0
但是通過我的理解,它應該出來是
的Emp ::計算---標準:2
的Emp ::計算---標準:1
標準: :計算---標準:2
的std ::計算---的Emp:0
誰能告訴我,我要去哪裏錯了?
@Hubble - 這是否回答您的問題? – EJK 2014-12-07 04:35:53
是的,非常感謝! – Hubble 2014-12-07 10:53:07