抽象類別中加入了建構元,但是執行時會出現Implicit super constructorCShape11_1() is undefined. Must explicitly invoke another constructor的錯誤,想請問哪裡要再修改呢,謝謝回答?

// app11_1 abstract class CShape11_1 // 定義抽象類別CShape { protected String color; // 資料成員 public CShape11_1(String str) { color=str; } public void setColor(String str) // 一般的函數 { color=str; } public abstract void show(); // 抽象函數,只有定義名稱,沒有定義處理方式 } class... 顯示更多 // app11_1
abstract class CShape11_1 // 定義抽象類別CShape
{
protected String color; // 資料成員
public CShape11_1(String str)
{
color=str;
}
public void setColor(String str) // 一般的函數
{
color=str;
}
public abstract void show(); // 抽象函數,只有定義名稱,沒有定義處理方式
}



class CRectangle11_1 extends CShape11_1 // 定義子類別CRectangle
{
protected int width,height;
public CRectangle11_1(String str)
{
super(str); //呼叫抽象類別CShape11_1(String str)建構元
}
public CRectangle11_1(int w,int h)
{
width=w;
height=h;
}
public void show() // 明確定義繼承自抽象類別的show() method
{
System.out.print("color="+color+", ");
System.out.println("area="+width*height);
}
}
class CCircle11_1 extends CShape11_1 // 定義子類別CCircle
{
protected double radius;
public CCircle11_1(String str)
{
super(str); //呼叫抽象類別CShape11_1(String str)建構元
}
public CCircle11_1(double r)
{
radius=r;
}
public void show() // 明確定義繼承自抽象類別的show() method
{
System.out.print("color="+color+", ");
System.out.println("area="+3.14*radius*radius);
}
}
public class app11_1
{
public static void main(String args[])
{
CRectangle11_1 rect=new CRectangle11_1(5,10);
rect.setColor("Yellow");
rect.show();

CCircle11_1 cir=new CCircle11_1(2.0);
cir.setColor("Green");
cir.show();
}
}
1 個解答 1