我正在考虑Java中的继承,但我遇到了错误。我定义了一个带有名称字段的超类。据我所知,子类继承字段,继承的字段可以被分配新的值。我希望getArea((在main中打印三角形的Area值,但我只打印了0.0。希望你能帮助我。【更新示例】
public class Figure{
double base;
double height;
double area;
public Figure(double base, double height){
this.height=height;
this.base=base;
}
public double getArea(){return area};
}
public class Triangle extends Figure(){
public Triangle(double base, double height){
super(base,height);
}
area=0.5 * base * height;
}
public class Main{
public static void main{
Triangle triangle=new Triangle();
System.out.println(triangle.getArea());
}
}
这里有一个应该可以工作的代码,带有一些注释
class Figure{
double base;
double height;
double area;
public Figure(double base, double height){
this.height=height;
this.base=base;
}
public double getArea(){return area;};
}
class Triangle extends Figure{
public Triangle(double base,double height){
super(base,height);
this.area = 0.5*base*height;
}
}
public class Main{
public static void main (String[] args){
Triangle triangle=new Triangle(12,8);
System.out.println(triangle.getArea());
}
}
- 一个文件中不能有多个公共类
- 当您显式定义收缩器时,编译器不会生成默认的收缩器,因此Triangle Triangle=new Triangle((不会编译。如果您需要使用默认构造函数,您应该自己声明它
- 入口点main有一个特定的语法,为了成为程序中第一个执行的函数,您应该尊重它