package?xxx;
public?abstract?class?Shape?{
????public?abstract?void?square();
?????public?abstract?void?zhouchang();?
?
}
package?xxx;
public??class?Rectangle?extends?Shape?{
?int?chang=8;
?int?kuan=6;
?int?square=chang*kuan;
??int?zhouchang=(chang+kuan)*2;
?
?
?@Override
?public?void?square()?{
??//?TODO?Auto-generated?method?stub
??
?}
?@Override
?public?void?zhouchang()?{
??//?TODO?Auto-generated?method?stub
??
?}?
?public?void?cal(){
?????System.out.println("矩形的面積為:"+square+"?"+"周長為"+zhouchang);
?????
}
}
package?xxx;
public?class?Circle?extends?Shape?{
????double?r=6.00;
?double?square=3.14*r*r;
????double?zhouchang=0.50*3.14*r;
?
?@Override
?public?void?square()?{
??//?TODO?Auto-generated?method?stub
??
?}
?@Override
?public?void?zhouchang()?{
??//?TODO?Auto-generated?method?stub
??
?}?
?public?void?cal(){
????System.out.println("圓形的面積為:"+square+"?"+"周長為"+zhouchang);
????}?
?}
package?xxx;
public?class?initail?{
?public?static?void?main(String[]?args)?{
???Shape?obj1=new?Circle();
??????Shape?obj2=new?Rectangle();
??????obj1.square();
??????obj1.zhouchang();
??????obj2.square();
??????obj2.zhouchang();
?}
}
2019-02-24
代碼里面沒用帶繼承的知識(shí)啊,在自動(dòng)生成的方法里面沒有方法體。
沒有結(jié)果的原因是因?yàn)?,你在子類中重新定義的新方法cal,而你創(chuàng)建的對(duì)象是由父類指向子類的,根本不能調(diào)用子類中的方法。
對(duì)于你的代碼,你可以試試看創(chuàng)建子類對(duì)象,直接用子類對(duì)象調(diào)用方法
Circle circle=new Circle();
circle.cal();
Rectangle rectangle=new Rectangle();
rectangle.cal();
2017-11-28
輸出結(jié)果的方法是
public?void?cal(){
????System.out.println("圓形的面積為:"+square+"?"+"周長為"+zhouchang);
????}?
?}
所以測(cè)試類中應(yīng)該添加?obj1.cal();?obj2.cal();