我想在抽象类中实现一个方法,该方法由继承的类调用并使用它们的值。
例如:
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/