1

我想知道Object“松散”抽象类的超类是否也是如此,即不扩展其他抽象类的抽象类。我不认为这很重要。但是,当把所有东西放在一起时,这个“正式”的措辞如何。

以下支持并与我看到的主题行中的 Q 相矛盾:

支持(对上面的 Q 表示“是”):i.) 具体类可以从抽象类继承,ii.) 每个类都是 的后代Object,并且 iii.) 每个类(除了Object)都只有一个超类。如果Object不是抽象类的超类,那么 (iii) 必须违反特殊情况Object——“一个类可以有两个超类,如果其中一个是Object,另一个是抽象的。”

矛盾的(对 Q 表示“否”):抽象类不能从属于具体类,Object而是具体的。但是,这也可以表述为“针对Object类的特殊情况”。

它是在一方面比另一方面更多,还是仅仅是“两者兼而有之——对于Object班级来说是例外”。提前致谢。

注意:我阅读了关于 为什么 java.lang.Object 不是抽象的讨论?.

纠正我在上面原始消息中的明显错误: 抽象类显然可以从具体类继承。这也使 Object 成为它们的超类。

4

3 回答 3

3

是的,Object它是每个抽象类的超类型,而且——独一无二地——甚至是接口的超类型。

抽象类不能从属于具体类,[…]

那不是真的。

于 2012-11-19T22:43:43.687 回答
0

我认为您感到困惑的是抽象类继承具体类是合法的。这是相当罕见的,但它可能会发生。这个问题显示了很多这样的例子。

于 2012-11-19T22:44:38.183 回答
0

是的,所有“松散”的抽象类都继承Object. 抽象类继承具体类并不常见,但这是合法的。

于 2012-11-19T22:53:42.163 回答