Java - 套接字继承

Asa*_*evo 0 java inheritance

我编写了一个扩展Socket类的类 - 旨在保留常规套接字中的所有方法,同时添加两个我自己的方法:

public class ClientSocket extends Socket{

private long lastOnline;

public ClientSocket() {
      super();
}

public long getLastOnline() {
    return lastOnline;
}

public void setLastOnline(long lastOnline) {
    this.lastOnline = lastOnline;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试初始化这个类的一个新实例,并为它添加一个打开的套接字时,我做错了(或者说我的问题可能有问题),它告诉我我不能设置套接字到ClientSocket对象(尽管它扩展了Socket):

ClientSocket socket = serverSocket.accept();
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?谢谢!

SLa*_*aks 7

serverSocket.accept()返回一个普通的Socket,而不是一个ClientSocket.
A ClientSocket 是a Socket,但反之亦然.