import javax.security.auth.Subject;
abstract class Department extends Subject{
String name;
}
我有这段代码。不幸的是,这引发了以下错误:The type Department cannot subclass the final class Subject
我正在阅读文档https://docs.oracle.com/javase/7/docs/api/javax/security/auth/Subject.html,但是如何使用它(一个特定的用例)并没有太多内容。
有人知道如何在抽象类上使用Subject(必须由抽象类扩展)吗?
编辑2:使用工具时出错:
The type Subject cannot be a superinterface of Department; a superinterface must be an interface
答案 0 :(得分:1)
由于Subject
class
是final
class
,因此您将无法对其进行扩展。这就是final
关键字的目的。我看到的唯一方法是包装类及其方法。您将无法在需要最终类的地方使用包装器,但可以实现最终类上的任何接口。
例如:
final class Foo {
public String getSomething() {
//
}
}
class Bar {
Foo foo;
public Bar() {
foo = new Foo();
}
public String getSomething() {
foo.getSomething();
}
public String doSomethingElse() {
//
}
}
不确定是否会对您的情况有所帮助。