编写java程序实现以下逻辑。 ① 抽象类Animal具有一个抽象方法cry。 ② 类Dog继承Animal,并实现cry方法。 ③ 类Cat继承Animal并实现cry方法。 编写测试类,分别实现抽象类实现多态,利用方法的Animal参数实现多态。
时间: 2024-06-06 10:09:05 浏览: 128
好的,您需要一个Java程序实现以下逻辑:
① 抽象类Animal具有一个抽象方法cry。
② 类Dog继承Animal,并实现cry方法。
③ 类Cat继承Animal并实现cry方法。
同时,您需要编写一个测试类,分别实现抽象类实现多态和利用方法的Animal参数实现多态。
下面是代码实现:
// 抽象类 Animal
abstract class Animal {
public abstract void cry();
}
// 继承自 Animal 的类 Dog
class Dog extends Animal {
public void cry() {
System.out.println("狗狗发出了“汪汪”的叫声!");
}
}
// 继承自 Animal 的类 Cat
class Cat extends Animal {
public void cry() {
System.out.println("小猫发出了“喵喵”的叫声!");
}
}
// 测试类
public class Main {
public static void main(String[] args) {
// 抽象类实现多态
Animal animal = new Dog(); // 创建一个 Dog 对象,并赋值给父类引用类型的变量
animal.cry(); // 调用 cry 方法,实际运行的是 Dog 类的 cry 方法
animal = new Cat(); // 创建一个 Cat 对象,并赋值给父类引用类型的变量
animal.cry(); // 调用 cry 方法,实际运行的是 Cat 类的 cry 方法
// 利用方法参数实现多态
makeCry(new Dog()); // 调用 makeCry 方法,并传入一个 Dog 对象作为参数
makeCry(new Cat()); // 调用 makeCry 方法,并传入一个 Cat 对象作为参数
}
// makeCry 方法,接收一个 Animal 对象作为参数,并调用它的 cry 方法
public static void makeCry(Animal animal) {
animal.cry();
}
}
阅读全文