【问题标题】:Use of Same method in Interface and Abstract class在接口和抽象类中使用相同的方法
【发布时间】:2019-02-09 17:24:36
【问题描述】:

我知道此类问题已被多次回答,并且可能会被标记为重复

我有这样的结构

public interface service{

    public void sayHello();
}

public abstract class AbstractService{

    public void sayHello(){
        System.out.println("Hello!!");
    }
}

public class MyService extends AbstractService implements service{

    public void sayHello(){
        super.sayHello();
    }
}

我知道 java 不允许多重继承,我们使用接口来解决这个问题。但是使用这种结构,我找不到关于为什么需要扩展和实施的好处/商业案例?因为我的抽象类中有一个具体的方法。

【问题讨论】:

    标签: java inheritance abstract-class extends implements


    【解决方案1】:

    假设您有很多,比如 10 个 w.l.g,AbstractService 的扩展,其中大多数(如果不是全部)在方法 sayHello 中具有相同的行为。你需要在每个实现接口的类中实现这个方法,你最终会得到很多重复的代码。这种方法在 Java 7 或更早版本中可以为您节省这种情况。

    为什么我说 Java 7 或更早版本?好吧,从 Java 8 开始,接口具有 default 方法实现,您实际上可以在其中提供该方法的默认实现,您可以在需要时覆盖它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2011-10-25
      • 2013-08-14
      • 1970-01-01
      • 2017-11-15
      • 2017-07-07
      • 1970-01-01
      相关资源
      最近更新 更多