我有一个java程序,由一个名为Piece的类组成,它有四个子对象。例如,几何,圆扩展几何,circle2扩展圆等等。
我想要创建一个几何对象数组和访问圆,或circle2方法。
例如。Geometry[i].method1();
不过,我似乎不能这样做。是否有最佳做法来创建具有相同父对象的对象数组,并以这种方式访问其子对象的方法?
发布于 2014-09-25 18:48:49
不能对父类对象调用子类方法。这样想吧。圆是一个几何图形。但并不是所有的几何图形都是圆。因此,并不是所有的几何形状都可以具有圆属性(在本例中是方法)。
您需要做的是告诉编译器将Geometry对象视为圆圈或父类Geometry下的任何其他子类Object。这叫做"casting".
因此,基本上您将Geometry对象转换为如下所示的Circle对象:
((Circle) Geometry[i]).method1();
https://stackoverflow.com/questions/26045831
复制相似问题