Java 关于OOP和继承类
我是新来的。。。 我有一个关于OOP规则的小问题。 假设我们有三个班:鸟、猫和狗。 因为狗和猫都有fourlegs()方法,它们都有eat()方法。 完成此任务的最佳方法是什么: *使用eat()创建动物类,使用fourlegs()创建宠物类,该类将从动物类继承。 此后,猫和狗类继承自宠物,而鸟类只继承自动物。Java 关于OOP和继承类,java,oop,Java,Oop,我是新来的。。。 我有一个关于OOP规则的小问题。 假设我们有三个班:鸟、猫和狗。 因为狗和猫都有fourlegs()方法,它们都有eat()方法。 完成此任务的最佳方法是什么: *使用eat()创建动物类,使用fourlegs()创建宠物类,该类将从动物类继承。 此后,猫和狗类继承自宠物,而鸟类只继承自动物。 *因为对于几个类有不同的方法,所以面向对象在这里是不相关的。 多谢各位 我想你几乎回答了你自己的问题。创建一个以“动物”接口作为顶部节点的类层次结构 另外,继承和多态性是OOP的一些基
*因为对于几个类有不同的方法,所以面向对象在这里是不相关的。
多谢各位 我想你几乎回答了你自己的问题。创建一个以“动物”接口作为顶部节点的类层次结构
另外,继承和多态性是OOP的一些基本要素,所以我不明白你的最后一句话 您可以使用以下示例代码:
class Animal(){
void eat(){
... do something ...
}
}
class Pet() extends Animal{
/* This class has inherited eat() method as declared in class Animal.
If you want to change it, you must use @Override. */
void fourlegs(){
... do something ...
}
}
class Dog extends Pet{
/* This class has inherited both eat() and fourlegs() from class Pet. */
...
}
class Bird extends Animal{
/* This class has inherited eat() method as declared in class Animal.
...
}
OOP编程当然与此练习相关,因为您需要使用继承(这是OOP的特征之一)来完成它。您可以创建一个接口/抽象类
Animal
<代码>鸟,猫
和狗
继承自动物。
由于腿的数量不能通过使它们依赖于哺乳动物
、宠物
或其他东西来分类,因此我将定义一个接口四腿
。这还可以使您不必将fly()
绑定到bird。。。有不会飞的鸟和会飞的昆虫:
public abstract class Animal {}
public interface FourLegged {}
public interface Flyer {}
public class Dog extends Animal implements FourLegged {}
public class Bird extends Animal implements Flyer {}
这取决于你的需要,
Animal
是一个接口还是一个抽象类。你所说的代码在哪里“因为几个类有不同的方法,面向对象在这里是不相关的”-你为什么这么说/写?你的任务也很清楚,也就是说,您必须创建一个描述良好的类层次结构。问题在哪里?为什么鸟不能从宠物身上继承?它们不可以作为宠物吗?你可能需要一个动物类,由哺乳动物
和鸟
继承,这两种动物分别由它们各自的生物继承。