課后問題請教,求指導;
public?abstract?class?TuAn?{
abstract?void?zhouchang();
abstract?void?mianji();
}這是抽象類;
public?class?FangXing?extends?TuAn?{
public?int?a;
public?int?b;
public?void?setA(int?a)?{
this.a?=?a;
System.out.println("a="?+?a);
}
public?void?setB(int?b)?{
this.b?=?b;
System.out.println("b="?+?b);
}
@Override
void?zhouchang()?{
//?TODO?Auto-generated?method?stub
System.out.println("a="?+?a);
System.out.println("b="?+?b);
System.out.println((2?*?(a?+?b)));
}
@Override
void?mianji()?{
//?TODO?Auto-generated?method?stub
System.out.println(a?*?b);
}
}這是方形。。;
public?class?YuanXing?extends?TuAn?{
int?r;
void?zhouchang()?{
//?TODO?Auto-generated?method?stub
System.out.println(2?*?3.14?*?r);
}
@Override
void?mianji()?{
//?TODO?Auto-generated?method?stub
System.out.println(3.14?*?r?*?r);
}
public?void?setR(int?r)?{
this.r?=?r;
}
}這是圓形;
import?java.util.Scanner;
public?class?Initial1?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
TuAn?tuan1?=?new?FangXing();
TuAn?tuan2?=?new?YuanXing();
Scanner?scr?=?new?Scanner(System.in);
FangXing?a?=?new?FangXing();
YuanXing?b?=?new?YuanXing();
a.setA(scr.nextInt());
a.setB(scr.nextInt());
tuan1.zhouchang();
tuan1.mianji();
b.setR(scr.nextInt());
tuan2.zhouchang();
tuan2.mianji();
scr.close();
}
}這是測試類 ;
問題是運行的時候參數讀不進去啊。。。求指點;
2017-02-16
你把tuan1換成a tuan2換成b試一下 你傳的參數是給a,和b對象的,tuan1和tuan2這兩個對象并沒有傳參數。
2016-12-29
我覺得這個時候你不要用多態了,TuAn?tuan1,而是用子類引用指向子類對象,這樣應該沒問題,如果有問題你再問我