在子类中覆盖相同的静态方法是不是很糟糕,它已经在Java的父类中定义了?

时间:2017-11-12 08:45:00

标签: java static polymorphism override

在这段代码中,我声明了包含静态方法的父类Animal和包含相同方法的Animal子类。我只是想知道这样做是否是一个好习惯。

class Animal{
    public static void eat() {
        System.out.println("Animal Eating");
    }
}

class Dog extends Animal{
    public static void eat() {
        System.out.println("Dog Eating");
    }
}

1 个答案:

答案 0 :(得分:4)

  1. 不,是一种不良做法。那么你的例子是良好练习

  2. 更好的想法是在父类中我们将方法声明为abstract,因为无论如何,子类都有自己的逻辑,而父类中的代码是没有意义的。

  3. `

    class Animal{
        abstract void eat();
    }
    class Dog extends Animal{
        public void eat() {
            System.out.println("Dog Eating");
        }
    }
    

    `