Cal*_*.50 9 java methods inheritance class abstract
有以下课程:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能避免我必须编写"System.out.println("方法称为")";" 两次?
谢谢你的回答
CalibeR.50
use*_*001 14
将通用功能引入超类,并定义另一个抽象方法,子类将为其定义自己的实现.
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");
}
}
Run Code Online (Sandbox Code Playgroud)
这样就可以避免重复调用超类的常用方法两次.