我想要圍繞Java中的繼承進行包裝。到目前爲止,我明白如果我以下面的方式聲明一個對象:Superclass object = new Subclass()
創建的子對象僅限於父對象的方法。如果我想訪問孩子的其他方法,我將不得不投給孩子。 但爲什麼在子類中方法仍然被覆蓋。Java對於初學者的繼承
這裏是我的榜樣
public class Parent {
public Parent() {
}
public void whoAmI(){
System.out.println("I'm a parent");
}
}
public class Child extends Parent {
public Child() {
}
public void whoAmI(){
System.out.println("I'm a child");
}
public void childMethode() {
System.out.println("Foo");
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Parent> list = new ArrayList<>();
Child c = new Child();
Parent p = new Parent();
Parent pc = new Child();
c.whoAmI();
p.whoAmI();
pc.whoAmI();
// Access child methodess
((Child) pc).childMethode();
list.add(c);
list.add(p);
list.add(pc);
System.out.println(list.size());
}
}
pc.whoAmI()
版畫 「我是一個孩子。」爲什麼不打印「我是父母」?
[本文](http://javarevisited.blogspot.com/2011/08/what-is-polymorphism-in-java-example.html)可能是有用的 – Pshemo
從邏輯上講它是有道理的調用實際的對象方法。請參閱我的示例 –