[英]Changing method of an abstract class in subclass
我在抽象类中创建了一个方法,即方法String toString()
public String toString() {
String res ="(" + Character.toString(propositieletter1) + " " + symboolconstante + " " + Character.toString(propositieletter2) + ")";
return res;
}
这是我的抽象方法的一种方法,我的子类只需要使用此方法更改“ symboolconstante”。 我不知道如何在不再次在子类中创建整个方法的情况下执行此操作。
用对symboolconstante()
方法的调用替换symboolconstante
。 每个子类都可以重写此方法。
在抽象类中,您可以将其定义为抽象:
protected abstract String symboolconstante();
在每个子类中,您都可以重写它:
@Override
protected String symboolconstante()
{
return "something";
}
抽象类的toString()
方法将调用此方法:
public String toString() {
String res ="(" + Character.toString(propositieletter1) + " " + symboolconstante() + " " + Character.toString(propositieletter2) + ")";
return res;
}
在抽象类中定义字段(私有字段和最终字段),然后在构造函数中初始化该字段
public abstract class AbstractClass {
private final String symboolconstante;
public AbstractClass (final String symbool) {
this.symboolconstante = symbool;
}
}
在子类中修改构造函数,以将值传递给抽象类
public class SubClass extends AbstractClass {
public SubClass() {
super("+");
}
}
将抽象的toString方法更改为采用参数
public String toString(final String symboolconstante) {
String res ="(" + Character.toString(propositieletter1) + " " + symboolconstante + " " + Character.toString(propositieletter2) + ")";
return res;
}
然后在子类中重写toString并传入参数:
@Override
public String toString() {
return super.toString("+");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.