有關抽象類的問題
?我想問一下能不能不在父類中給定 半徑的值,而是在子類中直接賦值。
package com.imooc.chouxiang;
public class Initail {
public static void main(String[] args) {
// TODO Auto-generated method stub
Shape one=new Rectangle();
one.r=3;
one.question();
}
}
package com.imooc.chouxiang;
public abstract class Shape {
public double r;
public abstract double question();
}
2017-06-06
如果一個父類里面什么都沒有給兒子傳下去,那這個父類就沒有必要存在,你可以直接寫一個接口,
但是當父類里面的東西不全的時候 但你又必須得繼承,這樣你可以用繼承然后子類去補全那些你需要的東西。
個人理解
2017-06-05
? 我之前也是你這樣編寫的,但是我發現?public?void?circumference() ?這個方法并不能輸出,void 返回值為空,應該用double 返回值吧 再接上return。 也有可能是我之前父類中定義 r , s , l 關鍵字 弄錯了加了 abstract 關鍵字。?
2017-06-05
可以啊。這是我的代碼。。。歡迎指導。。。隨便亂寫的。。。
package?abstract練習題; //圖形類(父類) public?abstract?class?Shaoe?{ int?a,b,r; public?abstract?void?circumference(); public?abstract?void?area(); } ==========分割線=============== package?abstract練習題; //圓形類 public?class?Circle?extends?Shaoe?{ int?r=10; int?d=2*r; double?π=Math.PI;//π值 double?r2=Math.pow(r,?2);//平方?|?Math.pow(a,b)?其中a是底數b是指數 @Override public?void?circumference()?{ //?TODO?Auto-generated?method?stub System.out.println("圓形周長:"+(d*π)); } @Override public?void?area()?{ //?TODO?Auto-generated?method?stub System.out.println("圓形的面積:"+(π*r2)); } } ==========分割線=============== package?abstract練習題; //矩形類 public?class?Rectangle?extends?Shaoe?{ int?a=5,b=7; @Override public?void?circumference()?{ //?TODO?Auto-generated?method?stub System.out.println("矩形周長:"+(2*a+2*b)); } @Override public?void?area()?{ //?TODO?Auto-generated?method?stub System.out.println("矩形面積:"+(a*b)); } } ==========分割線=============== package?abstract練習題; /** ?*?現有Shape圖形類,用Rectangle矩形和Circle圓形子類,求圖形的周長和面積 ?*?@author?曼陀羅華灬黎 ?*?2017年6月2日上午10:51:31 ?*/ public?class?Initial?{ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub Rectangle?q=new?Rectangle(); Circle?w=new?Circle(); q.circumference(); q.area(); System.out.println("=========================="); w.circumference(); w.area(); } }