package com.imooc;public abstract class Shape { public abstract void zhouchang(double a,double b); public abstract void zhouchang(double r); public abstract void area(double a,double b); public abstract void area(double r);}package com.imooc;public class Rectangle extends Shape { @Override public void zhouchang(double a, double b) { // TODO Auto-generated method stub double s=2*(a+b); System.out.println("矩形的周長(zhǎng)是: "+s); } @Override public void area(double a, double b) { // TODO Auto-generated method stub double s=a*b; System.out.println("矩形的面積是: "+s); }}package com.imooc;public class Circle extends Shape { @Override public void zhouchang(double r) { // TODO Auto-generated method stub double s=2*3.14*r; System.out.println("圓的周長(zhǎng)是: "+s);}@Override public void area(double r) { // TODO Auto-generated method stub double s=3.13*r*r; System.out.println("圓的面積是: "+s); }}package com.imooc;public class Initial { public static void main(String[] args) { // TODO Auto-generated method stub Rectangle rec=new Rectangle(); rec.zhouchang(3, 4); rec.area(3, 4); Circle cir=new Circle(); cir.zhouchang(3); cir.area(3);}}
3 回答

白丷露
TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超3個(gè)贊
我把你的代碼敲進(jìn)了Eclipse后,問(wèn)題很明確了。
你的 Circle類(lèi) 以及 Rectangle類(lèi) 繼承了 抽象類(lèi) Shape,但是,你這兩個(gè)子類(lèi) 并沒(méi)有 重寫(xiě) 抽象類(lèi)Shape 中的 所有【抽象】方法?,所以,編譯期就會(huì)報(bào)錯(cuò)。
解決方法,在 兩個(gè)子類(lèi)中 重寫(xiě) 基類(lèi)Shape 中 你沒(méi)有重寫(xiě)的 其他 抽象方法 ?即可。
添加回答
舉報(bào)
0/150
提交
取消