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

java – 重写抽象方法时的常用代码 – 设计问题

发布时间:2020-12-15 04:58:46 所属栏目:Java 来源:网络整理
导读:我有一个像这样的抽象类 public abstract Stuff{ public abstract void doStuff();} 几个类正在扩展Stuff,重写doStuff(). doStuff()通常为每个实现执行完全不同的任务,但共享一个共同的部分. 什么是实现这个的最佳方式? 我不想写一些像: public void doStu
我有一个像这样的抽象类

public abstract Stuff
{
    public abstract void doStuff();
}

几个类正在扩展Stuff,重写doStuff(). doStuff()通常为每个实现执行完全不同的任务,但共享一个共同的部分.

什么是实现这个的最佳方式?

我不想写一些像:

public void doStuff()
{
    doTheCommonPart();
    ...
}

在每个扩展类中.

解决方法

或者:

>将公共代码放在Stuff类的受保护方法中,并从doStuff的每个实现中调用它;要么
>将公共代码添加到抽象Stuff类并调用另一个抽象方法.

例如. (1)

public abstract Stuff  
{
    public abstract void doStuff();

    protected void commonCode() 
    {
      //...
    }
}

或(2)

public abstract Stuff
{
    public void doStuff() 
    {
      // Do the common stuff initially...
      // ...

      // Then call the subclass implementation
      doRealStuff();
    }

    public abstract void doRealStuff();
}

(编辑:李大同)

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

    推荐文章
      热点阅读