我可以使用 parent object 调用 child class 方法吗?
Can i call child class method using parent object?
我已经创建了基础 class 动物和 child class 作为猫。
主要是想创建PARENTclass的obj,调用childclass的方法。
那么,可不可以?
我还使用 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();
}
}
是的,会的。您正在更改类型,因此它会起作用。
您的代码应该可以正常工作。 if 条件将导致 false,因此您的动物将不会行走 ()。
Animal animal = new Animal();
该动物将具有 Animal 的所有行为,即 eat(),但 none 子 class Cat 的行为,即 walk()。
如果你想让你的动物拥有Animal的所有行为以及Cat的所有行为,你需要实例化Cat class。
Animal animal = new Cat();
现在你的动物会吃东西和走路了。
我已经创建了基础 class 动物和 child class 作为猫。
主要是想创建PARENTclass的obj,调用childclass的方法。
那么,可不可以?
我还使用 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();
}
}
是的,会的。您正在更改类型,因此它会起作用。
您的代码应该可以正常工作。 if 条件将导致 false,因此您的动物将不会行走 ()。
Animal animal = new Animal();
该动物将具有 Animal 的所有行为,即 eat(),但 none 子 class Cat 的行为,即 walk()。
如果你想让你的动物拥有Animal的所有行为以及Cat的所有行为,你需要实例化Cat class。
Animal animal = new Cat();
现在你的动物会吃东西和走路了。