Могу ли я вызвать метод дочернего класса, используя родительский объект?
Я создал базовый класс животных и детский класс как кошка. В основном я хочу создать объект класса PARENT и вызвать метод дочернего класса. Так это возможно или нет? Я также использовал instanceOf
просто проверить отношения
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();
}
}
2 ответа
Решение
Ваш код должен работать нормально. Условие if приведет к ложному, поэтому ваше животное не будет ходить ().
Animal animal = new Animal();
У этого животного будет все поведение Animal, то есть eat (), но ни одно из действий подкласса Cat, то есть walk().
Если вы хотите, чтобы у вашего животного было все поведение Animal, а также все поведения Cat, вам нужно создать экземпляр класса Cat.
Animal animal = new Cat();
Теперь твое животное будет есть и гулять.