gpt4 book ai didi

java - 强制抽象方法执行预定义的代码——类似于重载的 return 语句

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:23:17 25 4
gpt4 key购买 nike

我有一个带有抽象方法的抽象类

 public abstract class Foo{
public int bar();
}

这是普通类通过一些方法继承和实现的。

public class ConcreteFoo1 extends AbstractFoo{
public void bar(){
method1();
method2();
closingMethod();
return 1;

}

public class ConcreteFoo2 extends AbstractFoo{
public void bar(){
method3();
method4();
closingMethod();
return 2;

}

如您所见,这两个类都以 closingMethod(); 结尾 要用相同的行结束已实现的 bar() 方法对于框架来说是必不可少的从事于。有没有办法通过父类强制执行。缺少更好的词使其成为“半抽象”,其中前 n 行在子类中定义,结束行由父类定义。理想情况下,我想重载 return 语句或实现“方法析构函数”。

有什么办法可以实现吗?

最佳答案

我可能会通过在 Foo 中定义一个非抽象方法来实现,我会在其中调用抽象方法 barclosingMethod(),例如

public abstract class Foo {
public void foo() {
bar();
closingMethod();
}
public abstract void bar();
}

OP 编辑​​后的更新:

确实这让事情有点复杂,但是你可以做类似的事情

public abstract class Foo {
public int foo() {
bar();
closingMethod();
return baz();
}
protected abstract void bar();
protected abstract int baz();
}

关于java - 强制抽象方法执行预定义的代码——类似于重载的 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35707728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com