나는 자바에서 상속 주위에 내 머리를 싸려고 해요. 지금까지 나는 다음과 같은 방식으로 객체를 선언하면 이해했다 : 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
논리적으로는 실제 객체 메소드를 호출하는 것이 좋습니다 . 아래 예제를 참조하십시오 –