Java 我可以强制继承类的所有子类继承特定的方法吗?
所以,我有一个抽象类作为父类,下面是我想要实现的 抽象类:Java 我可以强制继承类的所有子类继承特定的方法吗?,java,inheritance,Java,Inheritance,所以,我有一个抽象类作为父类,下面是我想要实现的 抽象类: public void run(){ while(!booleanStatement){ //do specific stuff here } } public void run(){ while(!booleanStatement){ doStuff(); } } protected abstract void doStuff(); 儿童班: public clas
public void run(){
while(!booleanStatement){
//do specific stuff here
}
}
public void run(){
while(!booleanStatement){
doStuff();
}
}
protected abstract void doStuff();
儿童班:
public class extends parentClass{
public void run(){
//do child stuff here effected by the while loop above
}
public class extends parentClass{
protected void doStuff() {
// do something
}
有什么办法可以做到这一点吗?super()可能?是,调用
super.run()
将执行父级的方法
因此,您可以通过执行以下操作来扩展它:
public void run() {
super.run();
//do child stuff
}
是的,调用
super.run()
将执行父方法
因此,您可以通过执行以下操作来扩展它:
public void run() {
super.run();
//do child stuff
}
当然。只需定义一个额外的抽象方法:
public final void run(){
while(!booleanStatement){
doRun();
}
}
public abstract void doRun();
在这种情况下,子类不能覆盖
run()
,并且必须为doRun()
提供一个实现,该实现在循环中执行工作。当然。只需定义一个额外的抽象方法:
public final void run(){
while(!booleanStatement){
doRun();
}
}
public abstract void doRun();
在这种情况下,子类不能覆盖run()
,并被迫为doRun()
提供一个实现,该实现在循环中执行工作。在抽象类中:
public void run(){
while(!booleanStatement){
//do specific stuff here
}
}
public void run(){
while(!booleanStatement){
doStuff();
}
}
protected abstract void doStuff();
儿童班:
public class extends parentClass{
public void run(){
//do child stuff here effected by the while loop above
}
public class extends parentClass{
protected void doStuff() {
// do something
}
类似这样的操作就可以了。在抽象类中:
public void run(){
while(!booleanStatement){
//do specific stuff here
}
}
public void run(){
while(!booleanStatement){
doStuff();
}
}
protected abstract void doStuff();
儿童班:
public class extends parentClass{
public void run(){
//do child stuff here effected by the while loop above
}
public class extends parentClass{
protected void doStuff() {
// do something
}
这样做就可以了。那么在子类中,我只需要从我的doRun()方法调用run()?您不应该从
doRun()方法中调用它。doRun()
方法实现了应该在循环中执行的所有内容。从doRun()
方法调用它可能会导致StackOverflowException
sSo,这一点需要澄清。子类被迫实现doRun()来处理它们的内容,但只需调用run,然后从循环内部调用doRun()?这是我经常使用的设计模式,尤其是在创建泛型框架类型代码时。我相信这会是装饰师?不管怎样,先生,给你+1。我认为这是一种方法。是的,我非常喜欢这个方法,我想得越多,它在我的脑海中就越好。然后在子类中,我会从我的doRun()方法调用run()?你不应该从doRun()方法中调用它。doRun()
方法实现了应该在循环中执行的所有内容。从doRun()
方法调用它可能会导致StackOverflowException
sSo,这一点需要澄清。子类被迫实现doRun()来处理它们的内容,但只需调用run,然后从循环内部调用doRun()?这是我经常使用的设计模式,尤其是在创建泛型框架类型代码时。我相信这会是装饰师?不管怎样,先生,给你+1。我想这是一条路。是的,我很喜欢这条路,我想得越多,在我的脑海里就越好。