幫忙看下我寫的例子有啥改進空間,感覺Shape類沒有存在的必要啊?。?/h1>
package?com.imooc;
public?abstract?class?Sharp?{
abstract?void?circumference();
abstract?void?area();
}
package?com.imooc;
public??class?Rectangle?extends?Sharp?{
public?double?length?=?5;
public?double?width?=?3;
void?circumference()?{
//?TODO?Auto-generated?method?stub
double?getCircumference?=?2?*?(length?+?width);
System.out.println("長方形周長:"?+?getCircumference);
}
void?area()?{
//?TODO?Auto-generated?method?stub
double?getArea?=?length?*?width;
System.out.println("長方形面積:"?+?getArea);
}
}
package?com.imooc;
public?class?Circle?extends?Sharp?{
final?float?pi?=?3.14f;
double?r?=?3;?
void?circumference()?{
//?TODO?Auto-generated?method?stub
double?getCircumference?=?2?*?r?*?pi;
System.out.println("圓周長:"?+?getCircumference);
}
void?area()?{
//?TODO?Auto-generated?method?stub
double?getArea?=?r?*?r?*?pi;
System.out.println("圓面積:"?+?getArea);
}
}
package?com.imooc;
public?class?InitialSharp?{
/**
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
Rectangle?tu01?=?new?Rectangle();
tu01.length?=?2;
tu01.width?=?3;
tu01.area();
Circle?tu02?=?new?Circle();
tu02.circumference();
}
}
package?com.imooc; public?abstract?class?Sharp?{ abstract?void?circumference(); abstract?void?area(); }
package?com.imooc; public??class?Rectangle?extends?Sharp?{ public?double?length?=?5; public?double?width?=?3; void?circumference()?{ //?TODO?Auto-generated?method?stub double?getCircumference?=?2?*?(length?+?width); System.out.println("長方形周長:"?+?getCircumference); } void?area()?{ //?TODO?Auto-generated?method?stub double?getArea?=?length?*?width; System.out.println("長方形面積:"?+?getArea); } }
package?com.imooc; public?class?Circle?extends?Sharp?{ final?float?pi?=?3.14f; double?r?=?3;? void?circumference()?{ //?TODO?Auto-generated?method?stub double?getCircumference?=?2?*?r?*?pi; System.out.println("圓周長:"?+?getCircumference); } void?area()?{ //?TODO?Auto-generated?method?stub double?getArea?=?r?*?r?*?pi; System.out.println("圓面積:"?+?getArea); } }
package?com.imooc; public?class?InitialSharp?{ /** ?*?@param?args ?*/ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub Rectangle?tu01?=?new?Rectangle(); tu01.length?=?2; tu01.width?=?3; tu01.area(); Circle?tu02?=?new?Circle(); tu02.circumference(); } }
2015-04-20
屬性寫成private類型
2015-04-20
給每一個子類寫有參構造方法,這樣在創建子類對象時可以調用有參構造方法傳進參數。
2015-03-31
首先重寫子類的方法必須和被繼承的父類的方法相同
//父類
public?class?Shape?{
public?void?getArea(){
????System.out.println("圖形的面積");
}
public?void?getGirth(){
????System.out.println("圖形的周長");
}
}
//圓形子類
public?class?Circle?extends?Shape?{
????int?r=3;
public?void?getArea(){
????double?area=3.14*r*r;
????System.out.println("圓形的面積"+area);
}
public?void?getGirth(){
????double?girth=2*3.14*r;
????System.out.println("圓形的周長"+girth);
}
}
//方形子類
public?class?Rectangle?extends?Shape?{
????int?a=2;
????int?b=4;
????public?void?getArea(){
????????double?area=a*b;
????????System.out.println("方形的面積"+area);
????}
????public?void?getGirth(){
????????double?girth=2*(a+b);
????????System.out.println("圓形的周長"+girth);
????}
}
//測試類
public?class?Initial?{
?
????public?static?void?main(String[]?args)?{
????????//?TODO?Auto-generated?method?stub
????????Circle?circle=?new?Circle();
????????circle.getArea();
????????circle.getGirth();
????????Rectangle?rectangle=?new?Rectangle();
????????rectangle.getArea();
????????rectangle.getGirth();
????}
?
}
2015-01-11
創建對象可以用多態的方法創建對象吧
2014-12-08
這就是繼承的體現,那么現在再有個圖形,同時具有周長,面積和特殊的性質,那么這里只要繼承,重寫方法后,再寫自己特殊的性質就可以了