在Java中实现骨架类的正确方式是什么?
骨架我指的是一个提供骨架实用程序代码的类,但需要一个子类来实现一些部分。
在C ++中,我只是将纯虚方法添加到类中,但Java在接口和类之间有严格的区别,所以这不是一个选项。
基本上,模式应该是这样的:
class Skel {
void body() {
this.action1();
this.action2();
}
};
class UserImpl : extends A {
void action1() {
impl;
}
void action2() {
impl;
}
}
/* ... snip ... */
Skel inst = new UserImpl();
/* ... snip ... */
inst.body();
答案 0 :(得分:3)
Java中的抽象方法类似于C ++中的虚方法。
您需要使用抽象方法声明抽象类Skel,并在子类中实现它们:
<domain-controller>
<remote host="${jboss.domain.master.address:nnn.nn.nn.88}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
<domain-controller>
答案 1 :(得分:0)
abstract class Skel {abstract void action1();
abstract void action1();
abstract void action2();
public void body() {
action1();
action2();
}
}
class UserImpl extends Skel {
@Override
public void action1() {
//...
}
@Override
public void action2() {
//..
}
}
使用Abstract Class甚至更好地提取公共接口,以便您可以引用类。
interface CommonInterface {
void action1();
void action2();
void body();
}
abstract class Skel implements CommonInterface{
public void body() {
action1();
action2();
}
}
class UserImpl extends Skel {
@Override
public void action1() {
//...
}
@Override
public void action2() {
//..
}
}