java 继承练习题
时间: 2023-09-08 20:11:32 浏览: 70
好的,以下是一道 Java 继承的练习题:
假设有一个父类 `Animal` 和两个子类 `Dog` 和 `Cat`。`Animal` 类包含一个 `name` 成员变量和一个 `eat` 方法,`Dog` 和 `Cat` 类都继承了 `Animal` 类,并且都有一个 `sound` 方法。现在请你完成以下练习:
1. 在 `Animal` 类中,添加一个 `sleep` 方法,并在 `Dog` 和 `Cat` 类中覆盖(重写)该方法,使得 `Dog` 和 `Cat` 的 `sleep` 方法输出不同的内容。
2. 在 `Dog` 和 `Cat` 类中,实现各自的 `sound` 方法,使得 `Dog` 的 `sound` 方法输出 `"汪汪"`,`Cat` 的 `sound` 方法输出 `"喵喵"`。
3. 编写一个名为 `Main` 的测试类,并在其中创建一个 `Dog` 对象和一个 `Cat` 对象,分别调用它们的 `eat`、`sleep` 和 `sound` 方法。
你可以参考以下代码:
```java
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating");
}
public void sleep() {
System.out.println(name + " is sleeping");
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void sleep() {
System.out.println(getName() + " is sleeping soundly");
}
public void sound() {
System.out.println("汪汪");
}
}
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
public void sleep() {
System.out.println(getName() + " is sleeping quietly");
}
public void sound() {
System.out.println("喵喵");
}
}
public class Main {
public static void main(String[] args) {
Animal dog = new Dog("旺财");
Animal cat = new Cat("小花");
dog.eat();
dog.sleep();
((Dog) dog).sound();
cat.eat();
cat.sleep();
((Cat) cat).sound();
}
}
```
希望这个练习题能够帮助你理解 Java 继承的相关知识。