Java 无法对最终类主题接口进行子类化
我有这段代码。遗憾的是,这会引发以下错误:Java 无法对最终类主题接口进行子类化,java,Java,我有这段代码。遗憾的是,这会引发以下错误:类型部门无法对最终类主题进行子类化 我正在阅读文档:但是没有太多关于如何使用它的内容(一个特定的用例) 有人知道如何在抽象类上使用Subject(它必须由抽象类扩展)吗 编辑: 编辑2:使用机具时出错: import javax.security.auth.Subject; abstract class Department extends Subject{ String name; } 由于主题类是一个最终类您将无法扩展它。这就是fin
类型部门无法对最终类主题进行子类化
我正在阅读文档:但是没有太多关于如何使用它的内容(一个特定的用例)
有人知道如何在抽象类上使用Subject(它必须由抽象类扩展)吗
编辑:
编辑2:使用机具时出错:
import javax.security.auth.Subject;
abstract class Department extends Subject{
String name;
}
由于
主题
类
是一个最终
类
您将无法扩展它。这就是final
关键字的目的。我看到的唯一方法是包装类及其方法。您将无法在需要最终类的地方使用包装器,但您可以实现最终类上的任何接口
例:
不确定它在您的场景中是否有用。您不能从
主题
派生类。也许是另一种选择。你可以做的是组成一个包含主题类的类。请看这篇关于最终类的文章,因为它是最终类,不能扩展。您试图从中实现什么?图中的Subject
是一个接口,因此它可能与Java API中现有的Subject
类无关。您确定不应该创建自己的Subject
接口吗?
The type Subject cannot be a superinterface of Department; a superinterface must be an interface
final class Foo {
public String getSomething() {
//
}
}
class Bar {
Foo foo;
public Bar() {
foo = new Foo();
}
public String getSomething() {
foo.getSomething();
}
public String doSomethingElse() {
//
}
}