有以下类:
public abstract class Super
{
public abstract void run();
}
public class Sub1 extends Super
{
@Override
public void run ()
{
System.out.println("Method called");
System.out.println("Sub1 called");
}
}
public class Sub2 extends Super
{
@Override
public void run ()
{
System.out.println("Method called");
System.out.println("Sub2 called");
}
}
我如何避免必须编写“System.out.println("Method called");”两次?
谢谢解答
口径R.50
最佳答案
将通用功能引入父类(super class),并定义另一个抽象方法,子类将为其定义自己的实现。
public abstract class Super {
public void run() {
System.out.println("Method called");
printMessage();
}
abstract void printMessage ();
}
public class Sub1 extends Super {
@Override
void printMessage() {
System.out.println("Sub1 called");
}
}
public class Sub2 extends Super {
@Override
void printMessage () {
System.out.println("Sub2 called");
}
}
这样就可以避免重复调用父类的公共(public)方法两次。
关于带有正文的 Java "abstract like"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506449/