我想我已经开始理解这个主题,但是还不是很完整。有人可以在这个例子中向我解释:
public class Solution
{
public static void main(String[] args)
{
Cow cow = new Whale();
System.out.println(cow.getName());
}
public static class Cow
{
public String getName()
{
return "Im cow";
}
}
public static class Whale extends Cow
{
public String getName() {
return "Im whale";
}
}
}
什么时候叫这有什么区别:
Cow cow = new Whale();
System.out.println(cow.getName());
和这个:
Whale whale = new Whale();
System.out.println(whale.getName());
我将具有相同的输出,但是在什么情况下或什么时候应该调用Cow类的方法以及何时形成Whale类。
对不起,如果我给出了太愚蠢或太简单的例子。我希望你能理解我想说的话。
提前致谢。
最佳答案
了解多态性是个好问题。我不确定鲸鱼是否应该扩展Cow;),但是我可以向您展示一些不同的结构:
public class Solution {
public static void main(String[] args) {
Animal animal1 = new Cow();
Animal animal2 = new Whale();
ArrayList<Animal> myAnimals = new ArrayList<Animal>();
myAnimals.add(animal1);
myAnimals.add(animal2);
//show all my animals
for (Animal animal : arrayList) {
System.out.println(animal.getName());
}
}
public static class Animal {
public String getName() {
return "Im general animal";
}
}
public static class Cow extends Animal {
public String getName() {
return "Im cow";
}
}
public static class Whale extends Animal {
public String getName() {
return "Im whale";
}
}
}
在上面的示例中,我创建了Animal类,该类由Cow and Whale扩展。我可以创建我的动物列表并显示它们的名称。
在您的示例中,为Cow Cow = new Whale();创建对象没有区别。和鲸鱼鲸鱼= new Whale();
你清楚吗?