在 Java 中访问不同的 类' 静态成员时避免代码重复

Avoid code-duplication while access different classes' static members in Java

我正在写一个摘要 class 并且有一些子 class 扩展它。我在 sub-classes 中有完全相同的方法和相同的实现,我想知道是否有办法避免代码重复。问题在于,尽管每个 class 中的代码完全相同,但它使用了 class 的静态变量。有没有办法让方法只写一次(例如在抽象 class 中)并让方法从当前的 class 类型访问静态成员“NAME”对象?

也就是说,有没有办法只实现方法getName()一次,而return当前类型class的NAME静态变量呢?

public abstract class Car {
    public abstract String getName();
}

public class Bus extends car{
    
    private static final String NAME = "Bus a Bus A";
    
    public String getName() {
        return Bus.NAME;
    }
}

public class Taxi extends car{

    private static final String NAME = "TAXiiii";

    public String getName() {
        return Taxi.NAME;
    }
}

public class Motor extends car{

    private static final String NAME = "motor hehe";

    public String getName() {
        return Motor.NAME;
    }
}

为什么不简单地将名称传递给超级构造函数?虽然这消除了 Car 成为 abstract 的需要,因为您可以简单地 return 来自其 getName 方法的名称。

public class Car {
    private final String name;
    
    public Car(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public class Bus extends Car {

    private static final String NAME = "Bus a Bus A";

    public Bus() {
        super(NAME);
    }
}

public class Taxi extends Car {

    private static final String NAME = "TAXiiii";

    public Taxi() {
        super(NAME);
    }
}


public class Motor extends Car {

    private static final String NAME = "motor hehe";

    public Motor() {
        super(NAME);
    }
}