加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:32:44 所属栏目:Java 来源:网络整理
导读:我有一个抽象方法的抽象类 public abstract class Foo{ public int bar();} 这是由普通类使用某些方法继承和实现的. public class ConcreteFoo1 extends AbstractFoo{ public void bar(){ method1(); method2(); closingMethod(); return 1; } ????} public
我有一个抽象方法的抽象类

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中定义一个非抽象方法来实现它,我将其称为抽象方法栏和closingMethod(),例如,

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();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读