1

Object「緩い」抽象クラスのスーパークラス、つまり他の抽象クラスを拡張しない抽象クラスもあるかどうか疑問に思っています。私はこれがあまり重要だとは思わない。しかし、物事をすべてまとめるとき、これに関する「正式な」表現はどうですか。

以下は、件名の Q を支持し、矛盾しています。

サポート (上記の Q に「はい」): i.) 具象クラスは抽象クラスから継承できます、ii.) すべてのクラスは の子孫でありObject、iii.) すべてのクラス ( を除くObject) は厳密に 1 つのスーパークラスを持ちます。抽象クラスのスーパークラスではなかった場合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 に答える