亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我感覺寫成帶參數的會比較實用,但這里能否寫成帶參數的呢,如果可以,要在父類中就寫嗎,要怎么實現抽象?

//這是無參的
package?com.LEE;
?
public?abstract?class?Shape?{
public?abstract?void?perimeter();
public?abstract?void?area();
}
//************************************************
package?com.LEE;
?
public?class?Rectangle?extends?Shape?{
int?a=1,b=2;
@Override
public?void?perimeter()?{
//?TODO?Auto-generated?method?stub
System.out.println("矩形周長為"+2*(a+b));
}
?
@Override
public?void?area()?{
//?TODO?Auto-generated?method?stub
System.out.println("矩形面積為"+a*b);
}
?
}
//*************************************************
package?com.LEE;
?
public?class?Circle?extends?Shape?{
int?r=2;
@Override
public?void?perimeter()?{
//?TODO?Auto-generated?method?stub
System.out.println("圓形周長是"+(2*3.14*r));
}
?
@Override
public?void?area()?{
//?TODO?Auto-generated?method?stub
System.out.println("圓形面積是"+(3.14*r*r));
}
?
}
//****************************************************
package?com.LEE;
?
public?class?Initial?{
public?static?void?main(String[]?args){
Shape?Rec=new?Rectangle();
Shape?Cir=new?Circle();
Rec.perimeter();
Rec.area();
Cir.perimeter();
Cir.area();
}

}


正在回答

3 回答

package com.imooc;

public abstract class Shape {
?public abstract void area(double r);
?public abstract void area(double a,double b);
?public abstract void perimeter(double r);
?public abstract void perimeter(double a,double b);
}

package com.imooc;

public class Circle extends Shape {

?@Override
?public void area(double r) {
??// TODO Auto-generated method stub
??System.out.println("圓的面積是:"+3.14*3.14*r);

?}

?@Override
?public void area(double a, double b) {
??// TODO Auto-generated method stub

?}

?@Override
?public void perimeter(double r) {
??// TODO Auto-generated method stub
??System.out.println("圓的周長是:"+2*3.14*r);
?}

?@Override
?public void perimeter(double a, double b) {
??// TODO Auto-generated method stub

?}

}

package com.imooc;

public class Rectangle extends Shape {

?@Override
?public void area(double r) {
??// TODO Auto-generated method stub

?}

?@Override
?public void area(double a, double b) {
??// TODO Auto-generated method stub
??System.out.println("矩形的面積是:"+a*b);
?}

?@Override
?public void perimeter(double r) {
??// TODO Auto-generated method stub

?}

?@Override
?public void perimeter(double a, double b) {
??// TODO Auto-generated method stub
??System.out.println("矩形的周長是:"+2*(a+b));
?}

}

package com.imooc;

public class Initial {

?/**
? * @param args
? */
?public static void main(String[] args) {
??// TODO Auto-generated method stub
??Shape cir=new Circle();
??Shape rec=new Rectangle();
??cir.area(3.0);
??cir.perimeter(3.0);
??rec.area(2, 3);
??rec.perimeter(2, 3);
?}

}

0 回復 有任何疑惑可以回復我~

能文不武寫的是錯的

0 回復 有任何疑惑可以回復我~
//父類抽象方法和子類方法實現,唯一的區別就是,父類抽象方法中{}是空的,哈哈O(∩_∩)O哈哈~
package?com.LEE;
??
public?abstract?class?Shape?{????????//在父類方法中,所帶的參數都是在()里面聲明的
public?abstract?void?perimeter(int?a,int?b);?
public?abstract?void?area(int?r);?
}
//************************************************
package?com.LEE;
??
public?class?Rectangle?extends?Shape?{
//int?a=1,b=2;
//同樣,因為你這個方法已經是帶參數的了,所以在方法里面就不需要定義變量的值了這個步驟應該放到main方法里面去做
@Override
public?void?perimeter(int?a,?int?b)?{
//?TODO?Auto-generated?method?stub
System.out.println("矩形周長為"+2*(a+b));
}
??
@Override
public?void?area(int?a,?int?b)?{
//?TODO?Auto-generated?method?stub
System.out.println("矩形面積為"+a*b);
}
??
}
//*************************************************
package?com.LEE;
??
public?class?Circle?extends?Shape?{
//int?r=2;
@Override
public?void?perimeter(int?r)?{
//?TODO?Auto-generated?method?stub
System.out.println("圓形周長是"+(2*3.14*r));
}
??
@Override
public?void?area(int?r)?{
//?TODO?Auto-generated?method?stub
System.out.println("圓形面積是"+(3.14*r*r));
}
??
}
//****************************************************
package?com.LEE;
??
public?class?Initial?{
public?static?void?main(String[]?args){
Shape?Rec=new?Rectangle();
Shape?Cir=new?Circle();
//我們可以在這里定義具體參數的值
int?a=1,b=2
Rec.perimeter(a,b);
Rec.area(a,b);
int?r=2
Cir.perimeter(r);
Cir.area(r);
}
?
}


0 回復 有任何疑惑可以回復我~
#1

MoreClass

父類里面abstract void perimeter(int a, int b); 那么在兩個子類里面,無論是長方形還是圓形所得到的獲得變長的方法也都是需要ab兩個參數吧。同理計算面積也是。
2015-03-30 回復 有任何疑惑可以回復我~
#2

XFE_星城前端_Peter 回復 MoreClass

是的,樓下有人指出我的代碼有問題,如果有時間的話,可以幫我驗證下!太粗心了我!
2015-06-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我感覺寫成帶參數的會比較實用,但這里能否寫成帶參數的呢,如果可以,要在父類中就寫嗎,要怎么實現抽象?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號