gpt4 book ai didi

java - java中常用的接口(interface)方法实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:17:09 24 4
gpt4 key购买 nike

我有 2 个实现特定接口(interface)的类。
我想实现一个由 2 个类共享的方法。
我可以将该方法实现添加到接口(interface)类,然后从 2 个类调用该方法吗?

例如:

public interface DM 
{
public static void doSomething() {
System.out.println("Hello World");}
}

public class A implements DM
{
doSomething();
}

public class B implements DM
{
doSomething();
}
}

这可行吗?
执行此操作的正确方法是什么?

最佳答案

是的,如果您使用的是 Java 8,您可以创建一个 default 实现,如下所示:

public interface DM
{
default void doSomething() { System.out.println("Hello World");}
}

或者,如果它应该是静态的:

public interface DM
{
static void doSomething() { System.out.println("Hello World");}
}

有关详细信息,请参阅 Oracle's documentation on the feature

如果您能够对代码进行更广泛的更改,您可以使用的另一种策略是使用抽象类而不是接口(interface),并让您的实现类扩展 代替那个类。界面中任何您不想为其编写默认值的方法都应标记为abstract

public abstract class DM
{
public void doSomething() { System.out.println("Hello World");}
public abstract void doSomethingElse();
}

public class A extends DM
{
doSomething();
}

如果你想使用接口(interface)但不能/不会使用默认值,你也可以结合这些方法:

public abstract class DMImpl impelements DM
{
@Override
public void doSomething() { System.out.println("Hello World");}
}

public class A extends DM
{
doSomething();
}

关于java - java中常用的接口(interface)方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33763811/

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