java - 使用 child 值(value)观的 super 类

标签 java abstract-class

我想在抽象类中实现一个方法,该方法由继承的类调用并使用它们的值。

例如:

abstract class MyClass{
    String value = "myClass";
    void foo(){System.out.println(this.value);}
}

public class childClass{
    String value="childClass";
    void foo(){super.foo();}
}

public static void main(String[] args){
    new childClass.foo();
}

这将输出“myClass”,但我真正想要的是输出“childClass”。这样我就可以在类中实现“通用”方法,当由其他类扩展时,它将使用这些类中的值。

我可以将值作为函数参数传递,但我想知道是否可以实现我所描述的“架构”。

由继承类调用的 super 方法,它使用调用者而不是其本身的值,这不需要通过参数传递值。

最佳答案

你可以这样做:

abstract class MyClass {

    protected String myValue() {
        return "MyClass";
    }

    final void foo() {
        System.out.println(myValue());
    }
}

public class ChildClass extends MyClass {
    @Override
    protected String myValue() {
        return "ChildClass";
    }
}

等等

关于java - 使用 child 值(value)观的 super 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180359/

相关文章:

java - opencv cvCaptureFromFile ("url")相当于java?

java - 二维数组除法代码错误?

java - 为什么我不能在第一个条件中使用类型检查变量作为第二个条件中的类型转换变量?

mysql - Django 中的抽象基类与泛型关系

java - 使用 BufferedImage 的 drawImage() 不会绘制

java - java中的Long数据类型错误

java - 当没有实现时,抽象方法如何工作?

c++ - 为什么我们不能声明一个 std::vector<Abstract Class>?

java - 抽象类实现 Cloneable;抽象对象克隆()

java - 没有方法的抽象类