gpt4 book ai didi

java - 嵌套类的接口(interface)静态方法

转载 作者:行者123 更新时间:2023-12-02 03:25:14 25 4
gpt4 key购买 nike

今天几分钟前我才了解到,我可以在一个我不知道的包含类中嵌套许多静态类。我过去习惯于创建根本没有嵌套类的类。

我认为使用嵌套类将有助于提高代码的可读性,特别是当对象或类具有子类或类型时,就像需要考虑付款条件的 Payment 一样。

我发现理解嵌套类并将其应用到我的编码中与接口(interface)相结合非常强大。

所以我尝试将其应用到我当前的项目中,我设计了 Payment 的类和方法。

public class Payment {

public static class terms{

public static class monthly implements Monthly{

@Override //error here
public static void setDownpayment(double aDownPayment) //and error here
{

}

}

public static class quarterly{
public static void setDownpayment(){
//do something
}
}

public static class semestral{
public static void setDownpayment(){
//do something
}
}
}
}

这是我创建的界面

public interface Monthly {
public void setDownpayment(double aDownPayment);
}

我尝试将 setDown payment() 方法设为静态,以便我可以像这样引用它:

Payment.terms.monthly.setDownpayment(aDecimalValue);

但它似乎不允许静态方法。因为我用“//这里错误//这里错误”注释的两行有一个错误

如何修复它?

还有其他可能的解决方案或替代方法或设计建议吗?

如果有任何帮助,我将不胜感激。

谢谢。

最佳答案

在java中,您必须覆盖已实现的接口(interface)的所有方法,并且由于静态方法是类而不是对象的一部分,并且它们不可重写,这就是为什么不允许接口(interface)内的静态方法(在 java8 之前)。

在 Java8 中,允许接口(interface)中的静态方法,但它们必须在接口(interface)内有主体,并且不能在实现类中重写它们

关于java - 嵌套类的接口(interface)静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39024050/

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