1

Socket の Java ドキュメントによると、ソケットには SocketImpl というクラスのインスタンスがあります。

ただし、そのクラスを見ると、SocketImpl が抽象クラスであることが明確に示されています。

私の知る限り、抽象クラスのインスタンスを持つことはできません! ここで何が起こっているのか誰か教えてもらえますか?

リンク:ソケット Java ドキュメント

ドキュメントからの引用:

ソケットの実際の作業は、SocketImpl クラスのインスタンスによって実行されます。

SocketImpl クラスへのリンク: SocketImpl

4

1 に答える 1

3

実際の具象オブジェクトは、以下を拡張するクラスのインスタンスですSocketImpl

public class ConcreteSocketImpl extends SocketImpl {
    ... (implement all the abstract methods from SocketImpl)
}

また、継承は関係を定義するため ConcreteSocketImpl のインスタンスはすべてSocketImplです。

これがオブジェクト指向の基本原則です。抽象クラスのインスタンスがまったくない場合、抽象クラスとインターフェースはまったく意味がなく、まったく役に立ちません。

于 2013-01-01T17:59:02.633 に答える