Socket クラスを拡張する mysocket クラスがあります。
class MySocket extends Socket {
public int id;
}
これで、ServerSocket の accept メソッドから取得したサブクラス インスタンス (Socket) ができました。この Socket インスタンスを使用して MySockey インスタンスを構築するにはどうすればよいですか?
どこかからa を取得するので、次のようなSocket
ラッパーを使用して a を追加することをお勧めします。id
public class SocketWrapper {
private Socket socket;
private int id;
// getter, setter, ctors, ...
}
Socketを拡張するのではなくラップするという推奨事項に同意します。ただし、拡張を続けることにした場合は、引数としてSocketをとるコンストラクターをサブクラスに追加してください。ソケットメソッドをそれに委任します。
クラスのサブクラス化は、クラス自体に追加機能を追加する場合にのみ意味があります。あなたの場合、ソケットを使用したいだけのようです。@RCが提案したアプローチが正しいように。Socket クラスをサブクラス化するのではなく、Socket オブジェクトをインスタンス メンバーとして持つことができ、server.accept() の戻り値の型をそれに割り当てることができます。
お役に立てれば。