用java语言实现一个金丝猴类,要求其继承自动物类,并实现多态的语义。
时间: 2024-02-12 14:03:11 浏览: 28
好的,以下是一个简单的 Java 代码示例实现金丝猴类,继承自动物类并实现多态的语义:
```java
public class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating.");
}
}
public class GoldenMonkey extends Animal {
public GoldenMonkey(String name) {
super(name);
}
@Override
public void eat() {
System.out.println(name + " is eating bananas.");
}
public void climb() {
System.out.println(name + " is climbing trees.");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal("Animal");
GoldenMonkey monkey = new GoldenMonkey("Golden Monkey");
animal.eat();
monkey.eat();
monkey.climb();
Animal animal2 = new GoldenMonkey("Another Golden Monkey");
animal2.eat();
// animal2.climb(); // 编译错误,因为 animal2 只是 Animal 类型,无法访问 GoldenMonkey 类型的特有方法
}
}
```
在这个示例中,我们定义了 `Animal` 类作为基类,包含一个 `name` 属性和一个 `eat()` 方法。 `GoldenMonkey` 类继承自 `Animal` 类,同时实现了多态的语义,重写了 `eat()` 方法,并新增了一个 `climb()` 方法。在 `Main` 类中,我们创建了 `Animal` 类型和 `GoldenMonkey` 类型的对象,并调用它们的方法。注意,我们还创建了一个 `Animal` 类型的对象 `animal2` 并将其指向 `GoldenMonkey` 类型的对象,这是多态的一种应用,即用父类类型的变量引用子类类型的对象。由于 `animal2` 是 `Animal` 类型,无法访问 `GoldenMonkey` 类型的特有方法,因此调用 `climb()` 方法会编译错误。