6 回答

TA貢獻(xiàn)9條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,你第二個(gè)代碼的方法沒有對(duì)象去調(diào)用它,它怎么會(huì)去執(zhí)行那個(gè)方法里面的語句呢。然后,當(dāng)你要去實(shí)例化對(duì)象的時(shí)候,也只能實(shí)例化這些抽象方法的子類(這個(gè)子類不是抽象類來的),抽象類是不能直接實(shí)例化的,所以你的代碼需要這樣子:
package xuexi;
public abstract class Shape {
? ? ? ? ? ? public int a=20;
? ? ? ? ? ? public ?int b=30;
? ? ? ? ? ? public ?int r=4;? ? ? ? ? ??
? ? ? ? ? ? final double PI=3.14;? ? ? ?
}
package xuexi;
abstract class Rectangle extends Shape {
public void Zhouchang()
{
System.out.println("周長為:" + (a + b) * 2);
}
}
// 必須有普通類去繼承抽象類,抽象類才能被實(shí)例化
class NormalZiLei extends Rectangle {
}
public class WoCaiShiZhenZhengDeLei {
public static void main(String[] args) {
Rectangle rectangle = new NormalZiLei();
rectangle.Zhouchang();
}
}

TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超5個(gè)贊
親愛的,類前面應(yīng)該沒有public吧?我反正從來沒遇到過,還有就是父類是抽象類,子類也是abstruct抽象類,抽象類中的方法和屬性要在非抽象類的子類中去實(shí)現(xiàn)哦,所以你可以把子類的abstruct去掉,就可以了哦!

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超1個(gè)贊

TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超0個(gè)贊
package xuexi;
public class Test {
public static void main(String[] args) {
? zhouChang p1=new zhouChang();
? mianJi p2=new mianJi();
? yuanZhouChang p3=new yuanZhouChang();
? yuanMIanJi p4=new yuanMianJI();
p1.zhouChang();
p2.mianJi();
? ? ? ? Circle p2=new Circle();
? ? ? ? p3.yuanMianJi();
? ? ? ? p4.yuanZhouChang();
}
}

TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超0個(gè)贊
package xuexi;
public abstract class Circle extends Shape {
? ? ? ? ? ? ?public void Mianji(){
? ? ? ? ? ? System.out.println("面積為:"+(a*b));
? ? ? ? ? ? ?
? ? ? ? ? ? ?}
}
這個(gè)又不報(bào)錯(cuò)。。。
添加回答
舉報(bào)