Parent obj = new Child(); 有道理?

Hel*_*ang 1 java inheritance

在 Java 中:

Parent obj = new Child();
Run Code Online (Sandbox Code Playgroud)

我创建了一个 Parent 类型的对象。我假设我只能调用 Parent 类中定义的方法。因此,我无法调用 Child 中定义的“附加”方法或访问 Child 中定义的变量。所以我认为这是浪费内存,因为我已经新建了一个 Child 的实例,它比 Parent 需要更多的内存空间。到这一步我觉得没有意义。任何人都可以请给出一些合理的理由/例子吗?

SLa*_*aks 5

是的,确实有道理。

如果您想使用 Child,您可以这样做,但将与它的交互限制在Parent方法上。

这个习惯用法在 Java 集合中特别常见:

List<String> myList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)