重写子类中已经在Java父类中定义的相同静态方法是一种不好的做法吗?

重写子类中已经在Java父类中定义的相同静态方法是一种不好的做法吗?,java,static,polymorphism,overriding,Java,Static,Polymorphism,Overriding,在这段代码中,我声明了一个包含静态方法的父类Animaleat,以及一个包含相同方法的子类Animal。我只是想知道这样做是否是一种好的做法 class Animal{ public static void eat() { System.out.println("Animal Eating"); } } class Dog extends Animal{ public static void eat() { System.out.prin

在这段代码中,我声明了一个包含静态方法的父类Animaleat,以及一个包含相同方法的子类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");
    }
}
  • 不,这不是一个坏习惯。你的例子是一个很好的实践

  • 更好的方法是在父类中声明方法,因为无论如何子类都有自己的逻辑,父类中的代码没有意义

  • `

    `

  • 不,这不是一个坏习惯。你的例子是一个很好的实践

  • 更好的方法是在父类中声明方法,因为无论如何子类都有自己的逻辑,父类中的代码没有意义

  • `


    `

    您不能覆盖静态方法。为什么要覆盖静态方法?更好的解决方案就像Amos提到的。你不能覆盖静态方法。为什么是静态方法?更好的解决方案就像阿莫斯提到的那样。
    class Animal{
        abstract void eat();
    }
    class Dog extends Animal{
        public void eat() {
            System.out.println("Dog Eating");
        }
    }