java - 抽象方法和带有 UnsupportedException 的方法哪个更好?

标签 java exception inheritance abstract-class abstract

假设我有 2 个基类,其方法必须在子类中重写:

public abstract class Base1 {
    protected abstract void method();
}

public abstract class Base2 {
    protected void method() {
        throw new UnsupportedOperationException();
    }
}

使用的最佳实践是什么:抽象方法还是具有默认不支持异常的方法?

最佳答案

两者不应被视为替代方法。 不支持未实现之间是有区别的,理想情况下我们也应该在代码中维护它。

在没有有效且默认实现的情况下使用abstract方法。

在不允许/不支持操作的方法中使用UnsupportedOperationException实现。例如,remove 方法应该在不可修改的集合(Set/List)等中抛出此异常,请参阅 Collections 类。 (注意这里可能的默认实现是向调用者抛出异常)

关于java - 抽象方法和带有 UnsupportedException 的方法哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19291311/

相关文章:

java - 在 Spark 中对 RDD 执行分组并将每个组写入单独的 Parquet 文件

c++ - 异常指针清理

java - Guice 子模块阻止继承绑定(bind)

java - 从 BaseGameActirity 调用 Activity

java - JMonkey无尽地形示例: How to change the render distance

java - 在 cygwin 中启动 Java 程序 (jmeter)

java - 抛出异常后继续

c++ - 异常处理时类型识别是如何工作的

c++ - 在继承自 QObject 的类中使用信号

java - 当我的类继承自接口(interface)时,我们可以调用 super() 吗?会发生什么?