gpt4 book ai didi

java - 是否在给定代码中使用接口(interface)?

转载 作者:行者123 更新时间:2023-12-01 18:37:26 25 4
gpt4 key购买 nike

我有以下代码:

public class TestClass extends NewClass {

public static void main(String[] args) throws Exception {

}

@Override
public void doSomething() {
// TODO Auto-generated method stub

}

}

interface I {
void doSomething();
}

abstract class NewClass implements I {
// public abstract void doSomething(); // put doSomething() here and remove the interface or put doSomething() in the interface and implement it?

public void myFunc() {
doSomething();
}

}

现在我的问题是:我应该将方法 doSomething() 放在抽象类中,还是应该创建一个单独的接口(interface)并将方法放在那里并让我的抽象类实现它?哪个是好的设计?请注意,代码库中已经使用了无接口(interface)方法,但我仍然想知道将 doSomething() 放入接口(interface)中并实现该接口(interface)是否会更好。或者我应该遵循这样的哲学:“不要仅仅因为可以创建类/接口(interface),如果必须就创建它”。?

最佳答案

JLS 指出,如果抽象类中的所有方法都是抽象的,那么最好使用接口(interface)而不是抽象类。

如果您有非抽象方法,那么您必须使用抽象类,因为接口(interface)中声明的方法隐式是 publicabstract。至于您的 doSomething(); 方法,您可以以 abstract 或非 abstract 方式定义它。如果它是抽象的,第一个具体子类应该实现它。如果它不是抽象的,您仍然可以重写您的方法。

关于java - 是否在给定代码中使用接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21325708/

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