CCircle、CSquare與CTriangle類別繼承了父類別CShape

我們建立好幾個不同的子類別的物件,利用largest()找出這幾個物件最大的面積時

先宣告CShape的陣列變數,再將陣列變數指向這些物件

然後將整個陣列傳入largest()函數找出面積的最大值

160729yk5pczstntlk9kt6

  
class CShape{ private double area; private String ID; public CShape(String id){ ID=id; } protected void setArea(double area){ this.area=area; } public static void largest(CShape shape[]){ double max=0 ; int fg=0; for(int i=0;i<shape.length;i++){ if(shape[i].area >max){ max=shape[i].area; fg=i; } } System.out.println(shape[fg].ID+" has the largest area= "+shape[fg].area); } } class CCircle extends CShape{ public CCircle(double radius){ super("Circle"); setArea(radius*radius*3.14); } } class CSquare extends CShape{ public CSquare(double side){ super("Square"); setArea(side*side); } } class CTriangle extends CShape{ public CTriangle (double base,double height){ super("Triangle"); setArea((base*height)/2); } } public class App10_23 { public static void main(String[] args) { CShape shp[]=new CShape[3]; shp[0]=new CCircle(12.0); shp[1]=new CSquare(15); shp[2]=new CTriangle(3,18); CShape.largest(shp); } }

 

arrow
arrow

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()