Java 多态性示例:动物、猫和狗
Java 多态性示例:动物、猫和狗
本文通过定义动物、猫和狗类,并使用多态性调用'吃饭'和'捉老鼠'方法,展示了多态性的特点。
动物类的定义:
public class Animal {
private String name;
private int age;
private String gender;
public Animal(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public void eat() {
System.out.println("Animal is eating.");
}
}
猫类的定义:
public class Cat extends Animal {
public Cat(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void eat() {
System.out.println("Cat is eating fish.");
}
public void catchMouse() {
System.out.println("Cat is catching mouse.");
}
}
狗类的定义:
public class Dog extends Animal {
public Dog(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void eat() {
System.out.println("Dog is eating meat.");
}
public void watchHouse() {
System.out.println("Dog is watching house.");
}
}
测试多态调用:
public class Test {
public static void main(String[] args) {
Animal animal1 = new Animal("Animal1", 2, "male");
Animal animal2 = new Cat("Cat1", 3, "female");
Animal animal3 = new Dog("Dog1", 4, "male");
animal1.eat(); // 输出:Animal is eating.
animal2.eat(); // 输出:Cat is eating fish.
animal3.eat(); // 输出:Dog is eating meat.
((Cat) animal2).catchMouse(); // 输出:Cat is catching mouse.
((Dog) animal3).watchHouse(); // 输出:Dog is watching house.
}
}
特点:
- 多态调用了同一个方法,但是由于子类对该方法进行了重写,因此输出的内容不同。
- 只有猫和狗才能捉老鼠和看家,因此需要将动物对象强制转换为对应的子类才能调用这些方法。如果将动物对象直接声明为猫或狗,则可以直接调用这些方法。
原文地址: https://www.cveoy.top/t/topic/okwv 著作权归作者所有。请勿转载和采集!