反馈代码审查处理Java的继承和多态?

时间:2014-08-05 06:42:47

标签: java inheritance polymorphism

我正在研究一个处理继承和多态的编程项目。我只是需要,有人可以向我提供我的工作反馈,与此同时我要感谢您抽出时间提供反馈。教科书问题如下:

设计一个名为Triangle的类,其扩展为GeometricObject。该课程包含:

  • 三个双重数据字段,名为side1,side2和side3,默认值为1.0,表示三面。
  • 创建默认三角形的无参数构造函数。
  • 使用指定的side1,side2和side3创建三角形的构造函数。
  • 所有三个数据字段的访问器方法。
  • 一个名为getArea()的方法,它返回此三角形的区域。
  • 一个名为getPerimeter()的方法,它返回此三角形的周长。
  • 一个名为toString()的方法,它返回三角形的字符串描述。

toString()方法实现如下: 返回Triangle: side1 = " + side1 + " side2= " side2 + "side3" + side3;

不考虑GeometricObeject类,我只完成了Triangle类和测试程序,所以这里是我的代码:

public class Triangle extends GeometricObject {
private double side1, side2, side3; private double base, height;
public Triangle() { 
side1 = 1.0;
side2 = 1.0; 
side3 = 1.0;
}
public Triangle(double side1, double side2, double side3, double base, double height) {
this.side1 = side1; 
this.side2 = side2; 
this.side3 = side3; 
this.base = base; 
this.height = height;
}
public double getSide1() { 
return side1;
}
public double getSide2() { 
return side2;
}
public double getSide3() { 
return side3;
}
public double getBase() { 
return base;
}
public double getHeight() { 
return height;
}
public void setBase(double newBase) { 
base = newBase;
}
public void setHeight(double newHeight) {
height = newHeight; }
public void setSide1(double newSide1) { 
side1= newSide1;
}
public void setSide2(double newSide2) { 
side2= newSide2;
}
public void setSide3(double newSide3) { 
side3= newSide3;
}
public String toString() {
return (“Triangle : side1 " + getSide1() + "triangle side 2 " + getSide2()
+ "get side 3" + getSide3()) ;
}
public String toString() {
return (“Get base" + getBase() + "get height" + getHeight());
}
public void display() {
}
public double area() {
return 0.5 * base * height;
}
public double perimeter() { 
return side1 + side2 + side3;
} }


Test file
public class TestTriangle {
public static void main(String[] args) {
triangle t = new Triangle();
System.out.println("A triangle " + t.toString()); 
System.out.println("The radius is " + t.getRadius()); 
System.out.println("The area is " + t.getArea())
} }

1 个答案:

答案 0 :(得分:0)

你在你的例子中所采用的继承和多态的概念是不符合标准的,为什么?因为,

  1. 继承显示"是"关系,如果是,那么你不需要在你的孩子班级中编写那么多代码。我们只需将通用代码放在基类中,只需在子类中使用它。

  2. 多态性 - 根据我的阅读,你没有使用多态性。