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("矩形的周長是: "+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("圓的周長是: "+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貢獻11條經驗 獲得超3個贊
我把你的代碼敲進了Eclipse后,問題很明確了。
你的 Circle類 以及 Rectangle類 繼承了 抽象類 Shape,但是,你這兩個子類 并沒有 重寫 抽象類Shape 中的 所有【抽象】方法?,所以,編譯期就會報錯。
解決方法,在 兩個子類中 重寫 基類Shape 中 你沒有重寫的 其他 抽象方法 ?即可。
添加回答
舉報
0/150
提交
取消