我将尝试保持这个真正的基础,但我想确保我对多态性的理解是正确的......使用一个基本的例子。不要判断我的实际代码,因为我刚刚开始使用Java;)
我有一个基类“Animal”和2个子类“Tiger”和“Turtle”。 Animal有一个方法Feed()。老虎和海龟的命令Feed()都有自己的指示。
如果我有一个名为ZooKeeperTasks的程序,并且在该程序中我有以下代码
// animals[] is an array of Animal.
// assume that it contains both tigers and turtles
{
for(int i = 0; i < animals.length; i++) {
animals[i].Feed();
}
}
简而言之,这个多态性是不是?在不知道数组元素的实际数据类型的情况下调用feed?
答案 0 :(得分:1)
多态性是对象采用不同形式的能力。所以,你的例子是多态的一个很好的例子,但不是因为你可以在不知道数据类型的情况下调用方法,而是因为你的父类(动物)指的是子类对象[poly = many](tiger and turtle)并改变它们[变形=改变]。