如果在序列化之前对象是upcast,那么序列化如何在Java中工作?

Rya*_*n J 1 java serialization rmi

假设我有一个界面和一个对象:

public interface MyInterface {
    public String getStringOne();
}

public class MyObject implements MyInterface {
    private final String stringOne = "string1";
    private final Image myGiganticImage; // loads from disk in the constructor

    // Getters for both would follow
}
Run Code Online (Sandbox Code Playgroud)

如果我在将MyObject发送到MyInterface之前将其发送到线路之前会传输什么?

public class MyService {
    private final MyObject data = new MyObject();

    public MyInterface getData() {
        return data;
    }
}
Run Code Online (Sandbox Code Playgroud)

具体来说,是否myGiganticImage会通过电汇发送?

Sah*_*hoo 5

显然状态MyObject是序列化的.public MyInterface getData()只强制执行getData()is-a 返回的类型MyInterface.