<分区>
我想知道一些可以限制 java 中给定类的多个子类的过程。
例如如果我有 A 类,那么只有一个类可以扩展 A,即不允许超过 1 个子类。
我在一次公司面试中被问到这个问题,非常感谢您的帮助或指导。
标签 java inheritance
<分区>
我想知道一些可以限制 java 中给定类的多个子类的过程。
例如如果我有 A 类,那么只有一个类可以扩展 A,即不允许超过 1 个子类。
我在一次公司面试中被问到这个问题,非常感谢您的帮助或指导。
最佳答案
通过 Sujay 链接的机制,您可以防止任何人使用多个子类(参见评论)。父类(super class)构造函数/方法可以跟踪哪些子类正在调用它们,记住第一个,并在使用另一个子类时抛出异常。不是很优雅,可能也不是很有用(但这是一个面试问题)。
更新:这就是您想要的(来自 http://www.drmaciver.com/2007/09/how-to-create-sealed-classes-in-java/ )吗?
public class Sealed
{
private Sealed() { }
public final static class Foo extends Sealed {
public Foo() { }
}
}
您不能在 Sealed 类之外创建更多的子类,因为构造函数不可见...
关于java - java中的多个子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13128149/