扩展三角形文件
Extending triangle file
classes等边和右等腰延伸三角形class。我不知道如何使用 super() 方法。我应该使用它,但它让我感到困惑。它的目的是什么?我怎样才能让它发挥作用?我必须重命名实例变量吗?当我尝试编译时,它说它无法识别超级符号。
感谢您的帮助。
public class Triangle
{
// instance variables
private double sideA, sideB, sideC;
public Triangle(double side1, double side2, double side3)
{
// initialise instance variables
sideA = side1;
sideB = side2;
sideC = side3;
}
public double getSideA()
{
return sideA;
}
public double getSideB()
{
return sideB;
}
public double getSideC()
{
return sideC;
}
}
public class Equilateral extends Triangle
{
// instance variables
private double side1, side2, side3;
/**
* Constructor for objects of class box
*/
public Equilateral(double sideA)
{
// call superclass
super(sideA);
// initialise instance variables
side1 = sideA;
side2 = sideA;
side3 = sideA;
}
}
public class IsoscelesRight extends Triangle
{
// instance variables
private double sideA, sideB, sideC;
/**
* Constructor for objects of class box
*/
public IsoscelesRight(double side1, double side2)
{
// call superclass
super(side1);
// initialise instance variables
sideA = side1;
sideB = side1;
sideC = Math.pow(sideA*2,2);
}
}
// call superclass
super(sideA);
是一个父构造函数调用,但是在你的 super class 中没有构造函数接受一个双参数。
这里有几件事:
- 正如@Juned Ahsan 指出的那样,您正试图调用一个不存在的构造函数。
- 您正在子class中定义与超级class同名的字段。
您可以简单地将它们定义为:
public class Equilateral extends Triangle
{
public Equilateral(double sideA)
{
super(sideA, sideA, sideA);
}
}
public class IsoscelesRight extends Triangle
{
public IsoscelesRight(double sideA)
{
super(sideA, sideA, Math.sqrt(2*sideA*sideA));
}
}
然后通过 getSideA
等获取器访问边长。
classes等边和右等腰延伸三角形class。我不知道如何使用 super() 方法。我应该使用它,但它让我感到困惑。它的目的是什么?我怎样才能让它发挥作用?我必须重命名实例变量吗?当我尝试编译时,它说它无法识别超级符号。 感谢您的帮助。
public class Triangle
{
// instance variables
private double sideA, sideB, sideC;
public Triangle(double side1, double side2, double side3)
{
// initialise instance variables
sideA = side1;
sideB = side2;
sideC = side3;
}
public double getSideA()
{
return sideA;
}
public double getSideB()
{
return sideB;
}
public double getSideC()
{
return sideC;
}
}
public class Equilateral extends Triangle
{
// instance variables
private double side1, side2, side3;
/**
* Constructor for objects of class box
*/
public Equilateral(double sideA)
{
// call superclass
super(sideA);
// initialise instance variables
side1 = sideA;
side2 = sideA;
side3 = sideA;
}
}
public class IsoscelesRight extends Triangle
{
// instance variables
private double sideA, sideB, sideC;
/**
* Constructor for objects of class box
*/
public IsoscelesRight(double side1, double side2)
{
// call superclass
super(side1);
// initialise instance variables
sideA = side1;
sideB = side1;
sideC = Math.pow(sideA*2,2);
}
}
// call superclass
super(sideA);
是一个父构造函数调用,但是在你的 super class 中没有构造函数接受一个双参数。
这里有几件事:
- 正如@Juned Ahsan 指出的那样,您正试图调用一个不存在的构造函数。
- 您正在子class中定义与超级class同名的字段。
您可以简单地将它们定义为:
public class Equilateral extends Triangle
{
public Equilateral(double sideA)
{
super(sideA, sideA, sideA);
}
}
public class IsoscelesRight extends Triangle
{
public IsoscelesRight(double sideA)
{
super(sideA, sideA, Math.sqrt(2*sideA*sideA));
}
}
然后通过 getSideA
等获取器访问边长。