【发布时间】:2013-05-04 04:56:33
【问题描述】:
这就是我在 Java 中注意到的:
如果我上课:
class IntStorage
{
public int i;
public void setInt(int i) { this.i = i; }
public int getInt() { return i; }
}
并继承它,并存储其他数据:
class IntAndStringStorage : IntStorage
{
public String s;
public void setString(String s) { this.s = s; }
public String getString() { return s; }
}
我这样做:
IntAndStringStorage IandSstorage = new IntAndStringStorage();
IandSstorage.setString("Test");
IntStorage Istorage = (IntStorage)IandSstorage;
IntAndStorageStorage test = (IntAndStorageStorage)Istorage;
System.out.println(test.getString());
即使我将它转换为继承的类,它也是完全有效的。现在我假设信息仍在对象内部,那么我可以完全将其转换为继承的类而不保留旧信息吗?我不希望String 存储留在我的int 存储类中。
【问题讨论】:
-
class IntAndStringStorage : IntStorage那是 Java 8 表示法吗?此处不编译。 -
hmmm 只是想稍微澄清一下,这意味着当您投射的对象是您存储相同对象的对象吗?继承语法看起来也很像 C#。
-
@Nomad101 我的意思是对象仍然是同一个对象。它只是被“掩盖”为另一种类型的对象。
-
这是给我的一些动作脚本?
-
IntAndStringStorage不是一个IntStorage。继承前请三思。
标签: java class inheritance