我有两个接口:MinServer和MaxServer。 MaxServer扩展了MinServer。那么,以下代码正常吗?
MinServer server=foo.getUndefinedServer();
...code according to MinServer
if (isThisServerMax){
server=(MaxServer)server;
...code according to MaxServer
}
...code according to MinServer
最佳答案
不,这是不正确的。
在此刻:
server=(MaxServer)server
...code according to MaxServer
您正在将MaxServer强制转换为MinServer(可以),然后将强制转换的结果分配给MinServer ...因此,嗯,您与开始的位置相同。
如果您这样更改:
MaxServer server2 = (MaxServer)server
...code according to MaxServer using server2
那将是正确的。