Java 我需要数组在main或test方法中输出,并在循环调用中实现多态性方法
除了我注释掉的以外,我不能输出我的形状。我试图找到一种方法,在我的形状或测试形状类中输出它。我需要调用for循环并输出一些多态性方法。我会需要接球手和接球手吗 公共类形状{Java 我需要数组在main或test方法中输出,并在循环调用中实现多态性方法,java,arrays,polymorphism,Java,Arrays,Polymorphism,除了我注释掉的以外,我不能输出我的形状。我试图找到一种方法,在我的形状或测试形状类中输出它。我需要调用for循环并输出一些多态性方法。我会需要接球手和接球手吗 公共类形状{ public static void main(String[] args) { Shapes [ ] Array = { new Triangle ( " ", " ", " "), new Rectangle ( " ", " ", " "), new Sq
public static void main(String[] args) {
Shapes [ ] Array = {
new Triangle ( " ", " ", " "),
new Rectangle ( " ", " ", " "),
new Square ( " ", " ", " "),
new Ellipse ( " ", " ", " "),
new Circle ( " ", " ", " ")};
}
public void TestShapes ( ) {
}
}
public class Rectangle extends Shapes {
private String draw;
private String erase;
private String move;
public Rectangle ( ) {
draw = " ";
erase = " ";
move = " ";
System.out.println( " Default constructor" );
}
public Rectangle (String draw, String erase, String move ) {
draw = " Rectangle - draw method\n";
erase = " Rectangle - erase method\n";
move = " Rectangle - move method\n";
//System.out.println( draw + erase + move );
}
}
public class Square extends Rectangle {
private String draw;
private String erase;
private String move;
public Square ( ) {
draw = " ";
erase = " ";
move = " ";
System.out.println( " Default constructor" );
}
public Square (String draw, String erase, String move ) {
draw = " Square - draw method \n";
erase = " Square - erase method \n";
move = " Square - move method\n";
// System.out.println( draw + erase + move );
}
}
public class Ellipse extends Shapes {
private String draw;
private String erase;
private String move;
public Ellipse ( ) {
draw = " ";
erase = " ";
move = " ";
System.out.println( " Default constructor" );
}
public Ellipse (String draw, String erase, String move ) {
draw = "ellipse - draw method \n ";
erase = "ellipse - erase method \n";
move = "ellipse - move method \n";
// System.out.println( draw + erase + move);
}
}
public class Circle extends Ellipse {
private String draw;
private String erase;
private String move;
public Circle ( ) {
draw = " ";
erase = " ";
move = " ";
System.out.println( "Default constructor " );
}
public Circle (String draw, String erase, String move) {
draw = "Circle - draw method \n";
erase = "Circle - erase method \n";
move = "Circle - move method \n";
//System.out.println( draw + erase + move );
}
}
public class Triangle extends Shapes {
private String draw;
private String erase;
private String move;
public Triangle ( ) {
draw = " ";
erase = " ";
move = " ";
System.out.println( "Default constructor " );
}
public Triangle (String draw, String erase, String move ) {
draw = " Triangle - draw method \n";
erase = " Triangle - erase method \n";
move = " Triangle - move method \n";
// System.out.println( draw + erase + move);
}
}
第一种方法 每个类都有对象作为超类。因此,可以重写toString() 应该在要创建的所有不同形状中重写toString()方法
public String toString()
{
String s = "";
s+= "draw " + this.draw;
s+= "erase" + this.erase;
s+= "move" + this.move;
return s;
}
然后通过调用打印(这将根据Square类中重写的toString()方法打印信息)
您应该创建一个Shapes类并进行抽象,然后在名为Shape的超类中拥有所有形状所需的所有方法,然后当您创建一个类(如Square或rectangle)时,它可以扩展形状,但不必是抽象的。但是编译器会让您实现在s中拥有的所有方法Super类。我一直在使用toString,并希望以不同的方式处理它。我已经看到了几种方法,可以使用循环结构,通过调用所有方法来演示多态性。如果它们都具有相同的构造函数,Super似乎没有用。我可以使用它吗(I=0;IPolymorphism通过调用toString或getProperties方法来演示,因为您将有不同的实现。是的,我希望直接在我的主方法中打印。
public void TestShapes (Shapes[] Array ) {
for(int x =0; x<Array.length;x++)//iterates through array
{
System.out.println(Array[x].toString());
}
}
}
public void TestShapes (Shapes[] Array ) {
for(int x =0; x<Array.length;x++)//iterates through array
{
System.out.println(Array[x].getProperties()); // if it returns a string
Array[x].getProperties(); //if it goes directly to console
}
}
}
public void getProperties()
{
System.out.println("varProp");
System.out.println("varProp");
System.out.println("varProp");
}