Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于OOP和继承类_Java_Oop - Fatal编程技术网

Java 关于OOP和继承类

Java 关于OOP和继承类,java,oop,Java,Oop,我是新来的。。。 我有一个关于OOP规则的小问题。 假设我们有三个班:鸟、猫和狗。 因为狗和猫都有fourlegs()方法,它们都有eat()方法。 完成此任务的最佳方法是什么: *使用eat()创建动物类,使用fourlegs()创建宠物类,该类将从动物类继承。 此后,猫和狗类继承自宠物,而鸟类只继承自动物。 *因为对于几个类有不同的方法,所以面向对象在这里是不相关的。 多谢各位 我想你几乎回答了你自己的问题。创建一个以“动物”接口作为顶部节点的类层次结构 另外,继承和多态性是OOP的一些基

我是新来的。。。 我有一个关于OOP规则的小问题。 假设我们有三个班:鸟、猫和狗。 因为狗和猫都有fourlegs()方法,它们都有eat()方法。 完成此任务的最佳方法是什么: *使用eat()创建动物类,使用fourlegs()创建宠物类,该类将从动物类继承。 此后,猫和狗类继承自宠物,而鸟类只继承自动物。
*因为对于几个类有不同的方法,所以面向对象在这里是不相关的。
多谢各位

我想你几乎回答了你自己的问题。创建一个以“动物”接口作为顶部节点的类层次结构


另外,继承和多态性是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
    是一个接口还是一个抽象类。

    你所说的代码在哪里“因为几个类有不同的方法,面向对象在这里是不相关的”-你为什么这么说/写?你的任务也很清楚,也就是说,您必须创建一个描述良好的类层次结构。问题在哪里?为什么鸟不能从宠物身上继承?它们不可以作为宠物吗?你可能需要一个
    动物类,由
    哺乳动物
    继承,这两种动物分别由它们各自的生物继承。