谁能解释一下下面代码的输出,以及这里涉及的Java原理是什么?
class Mammal {
void eat(Mammal m) {
System.out.println("Mammal eats food");
}
}
class Cattle extends Mammal{
void eat(Cattle c){
System.out.println("Cattle eats hay");
}
}
class Horse extends Cattle {
void eat(Horse h) {
System.out.println("Horse eats hay");
}
}
public class Test {
public static void main(String[] args) {
Mammal h = new Horse();
Cattle c = new Horse();
c.eat(h);
}
}
Run Code Online (Sandbox Code Playgroud)
它产生以下输出:
Mammal eats food
Run Code Online (Sandbox Code Playgroud)
我想知道我们是如何得到上述结果的。