【发布时间】:2021-11-16 12:59:47
【问题描述】:
我是 Java 新手,正在学习继承和多态。 我有一个抽象的 Pet 类,并有从 Pet 父类扩展的子类 Dog 和 Bird。
public abstract class Pet {
private String name;
private int age;
private String color;
public Pet(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
public void speak() {
System.out.println("I am a speak method of main class");
}
}
public class Dog extends Pet{
private String numberOfTeeth;
public Dog(String name, int age, String color, String numberOfTeeth) {
super(name, age, color);
this.numberOfTeeth = numberOfTeeth;
}
public String getNumberOfTeeth() {
return numberOfTeeth;
}
public void setNumberOfTeeth(String numberOfTeeth) {
this.numberOfTeeth = numberOfTeeth;
}
public void playFetch() {
System.out.println("dog is playing fetch");
}
}
public class Bird extends Pet{
private int flapsPerSecond;
public Bird(String name, int age, String color, int flapsPerSecond) {
super(name, age, color);
this.flapsPerSecond = flapsPerSecond;
}
public void fly() {
System.out.println("the bird is flying");
}
}
现在我正在尝试为宠物对象创建一个数据库。困境是我不确定是否应该为 Dog 和 Bird 类创建单独的表,或者应该只拥有一个 Pet 表。在前端,我正在尝试实现特定于宠物类型的功能。例如,如果对象类型是 Dog,则创建一个发出吠叫声的按钮。如果对象类型是鸟,则创建一个按钮,让鸟儿拍打翅膀发出声音。我正在考虑在宠物表上创建一个名为“物种”的列,并说明宠物是狗还是鸟。而当我们从数据库中提取数据时,如果我们看到 Species 字符串值为 Dog,则相应地创建相应的按钮。
【问题讨论】: