我目前正在使用JavaFx。我需要制作形状,然后添加一个click事件,这将打开一个新窗口,该窗口将接受输入以更改形状的大小。我有一个父类“ MShape”和子类“ MRectangle”,“ MCircle”,“ MEllipse”等。我有一个方法可以多态地创建这些形状,因此它们的类型为MShape。这是多态代码。
public static MShape[] getDefaultShapes(){
MShape[] allshapes= new MShape[7];
allshapes[0] = new MRectangle( 255, 125, 30, 25);
allshapes[1] = new MRectangle( 155, 75, 10, 40);
allshapes[2] = new MCircle( 80, 80, 10);
allshapes[3] = new MRectangle( 45, 105, 80, 40);
allshapes[4] = new MCircle( 200, 100, 50);
allshapes[5] = new MSquare (150, 200, 70);
allshapes[6] = new MEllipse (50, 210, 30, 50);
return allshapes;
}
现在,当我在另一个类中调用此函数时,我希望能够将MShape转换为相应的形状。例如,我想制作一个循环,例如将第一个索引MRectangle转换为MRectangle。但是,当我需要从MRectangle更改为MEllipse时,我不想使用if-else语句。那我该怎么投呢?
这是我尝试过的方法:
public static void control(int index)
{
MShape[] shapes = MAllShapes.getDefaultShapes();
String shapeName=shapes[index].getClass().getSimpleName();
shapeName castedObject=(shapeName) shapes[index]
System.out.println(myShape.getName());
}
Qyouu
相关分类