Inheritance 遗传问题
我有一个叫做Polygon的类,还有一个叫做Triangle的子类(如果是正确的术语)。三角形有一个名为外切中心()的函数。多边形没有这样的功能 我有一个多边形向量。我想调用其中一个多边形,我知道它是三角形,外心函数。调用Polygons[0].exprichcenter()时,我出现了错误“类Polygon没有名为“exprichcenter”的成员”,我假设是因为程序不知道该多边形是三角形Inheritance 遗传问题,inheritance,Inheritance,我有一个叫做Polygon的类,还有一个叫做Triangle的子类(如果是正确的术语)。三角形有一个名为外切中心()的函数。多边形没有这样的功能 我有一个多边形向量。我想调用其中一个多边形,我知道它是三角形,外心函数。调用Polygons[0].exprichcenter()时,我出现了错误“类Polygon没有名为“exprichcenter”的成员”,我假设是因为程序不知道该多边形是三角形 有解决方法吗?大多数语言都允许您转换为正确的类型。 e、 g.爪哇 if (polygons[0] i
有解决方法吗?大多数语言都允许您转换为正确的类型。 e、 g.爪哇
if (polygons[0] instanceof Triangle) {
Triangle triangle = (Triangle)polygons[0];
triangle.circumcenter();
}
请在你的问题中添加相关的标记。就像@OliCharlesworth所说的,为你正在使用的代码添加标记,你可能还需要先将对象投射为三角形。你不能用
((三角形)多边形[0])进行一行吗?环心()
?可以,但如果OP不知道投射,那么我认为KISS适用;-)这是真的。有时我忘记了接吻的哲学:古老的接吻(在这里插入飞火喷血的恶魔弹奏低音…)