gpt4 book ai didi

java - 为什么没有抽象方法的情况下将类标记为抽象

转载 作者:行者123 更新时间:2023-12-01 18:17:59 24 4
gpt4 key购买 nike

我对java中的抽象类有点困惑。我知道每当类编译器中存在抽象方法时,都会强制开发人员将类标记为抽象。但即使我们在类中没有任何抽象方法,我们仍然将整个类标记为抽象。我不明白为什么我们可以这样做。当没有抽象方法时,允许开发人员将类标记为抽象的目的是什么?可以说原因是我们不想创建该类的实例。如果是这个原因,那么将类的构造函数标记为私有(private)比标记类抽象更合适。

最佳答案

使用不带抽象方法的抽象类有一个非常有用的原因:为可重写方法提供默认实现。

JDK本身就有几个完美的例子。例如,查看 WindowAdapter 。它实现了WindowListener接口(interface)(除其他外),但提供空的不执行任何操作的方法实现。在大多数情况下,您希望注册一个仅重写一两个接口(interface)方法的窗口监听器。然后您自己的类只需扩展 WindowAdapter 而不是实现 WindowListener

请注意,对于接口(interface)中的 Java 8 默认方法,这个原因不再成立,事实上,没有抽象方法的抽象类不再有意义。

关于java - 为什么没有抽象方法的情况下将类标记为抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28471053/

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