java - java中的多个子类

标签 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/

相关文章:

java - 分析器消息解析

c# - 重构为子类

c# - 为什么泛型类型参数中的隐式子到父转换是不可能的?

java - Java 中继承和重写方法的输出令人困惑

C# - CLR 在继承过程中如何组织内存/引用?

java - 静态最终变量的值

java - Hadoop服务器运行向导未在Eclipse中打开

java - AM/PM 的 SimpleDateFormat 解析错误

java - Maven EAR 项目 - JAR 未被排除?

java - 用作子类型时可用的父类(super class)型的单个 'load from datastore' 方法