2017-03-09 2 views
0

고양이와 같은 기본 클래스의 동물과 자식 클래스를 만들었습니다. main에서 parent 클래스의 obj를 만들고 child 클래스의 메소드를 호출하고 싶습니다. 그럼, 가능합니까? 은 또한 단지부모 개체를 사용하여 하위 클래스 메서드를 호출 할 수 있습니까?

public class Animal 
{ 
public void eats() 
{ 
    System.out.println("Animal Eats"); 
} 
} 



public class Cat extends Animal 
{ 
    public void walks() 
    { 
     System.out.println("Cat Walks"); 
    } 

} 



public class AnimalMain 
{ 
public static void main(String args[]) 
{ 
Animal a=new Animal(); 
display(a); 
} 
public static void display(Animal a) 
{ 
    a.eats(); 
    if(a instanceof Cat) 
    ((Cat)a).walks(); 
} 
} 
+0

urs의 요구 사항에 따라 적절한 샘플을 제공합니까? –

답변

3

코드가 제대로 작동해야합니다. if 조건은 false가되므로 동물은 걸을 수 없습니다().

Animal animal = new Animal(); 

이 동물) 즉 (먹고, 동물의 모든 행동을 가지고 있지만 것이다 서브 클래스 고양이, 즉 거리의 행동 없음().

동물이 Animal의 모든 동작과 Cat의 모든 동작을 갖기를 원한다면 Cat 클래스를 인스턴스화해야합니다.

Animal animal = new Cat(); 

이제 동물이 먹고 걸을 것입니다.

+0

고마워요, 혼란 스러웠습니다. 다시 한 번 감사드립니다 ... –

0

예, 그것은 것 관계를 확인하기 위해 instanceOf을 사용했다. 유형을 변경하면 작동 할 것입니다.

관련 문제