我是新手,今天看书遇到了个问题,想向各位请教下,
例如:如果B,C和D类都继承了父类A,也同时覆盖父类里的area()方法,用来反回物件的面积,试想,如果我们创建好几个不同子类的对象,而想利用largest()方法找出这几个对象最大的面积时,此时若先声明A的数组变量,再将数组变量指向这些对象,然后将整个数组传入largest()方法找出面积的最大值,如此用起来是不是方便许多呢?
参考代码"
A a[] = new A[5]; //声明A的数组变量;
a[0] = new A(12); //创建圆形对象(1);
a[1] = new A(21); //创建贺形对象(2);
a[2] = new A(15); //创建正方形对象;
a[3] = new A(12,7);//创建三角形对象(1);
a[4] = new A(3,18);//创建三角形对象(2);
A.largest(a); //比较对象面积的大小,并返回最大者;
请高手按他的说法将代码帮我补全..我想看看父类变量掻向子类对象的好处!!!!!!!!!按他的要求写啊.我想知道这个怎么写.谢谢
例如:如果B,C和D类都继承了父类A,也同时覆盖父类里的area()方法,用来反回物件的面积,试想,如果我们创建好几个不同子类的对象,而想利用largest()方法找出这几个对象最大的面积时,此时若先声明A的数组变量,再将数组变量指向这些对象,然后将整个数组传入largest()方法找出面积的最大值,如此用起来是不是方便许多呢?
参考代码"
A a[] = new A[5]; //声明A的数组变量;
a[0] = new A(12); //创建圆形对象(1);
a[1] = new A(21); //创建贺形对象(2);
a[2] = new A(15); //创建正方形对象;
a[3] = new A(12,7);//创建三角形对象(1);
a[4] = new A(3,18);//创建三角形对象(2);
A.largest(a); //比较对象面积的大小,并返回最大者;
请高手按他的说法将代码帮我补全..我想看看父类变量掻向子类对象的好处!!!!!!!!!按他的要求写啊.我想知道这个怎么写.谢谢
if(null == a || a.length==0)return null;
A max = a[0]; //假设第一个最大
for(int i=1;i< a.length;i++){
if(a[i].area() > max) max = a[i]; //依次比较,面积大的 记录为最大
}
return max;
}
public class Graph { public double area; public boolean compare(Graph o1) {
return this.area > o1.area ? true : false;
}}class Util { public static void main(String[] args) {
Graph[] gs = new Graph[10];
for (int i = 0; i < gs.length; i++) {
//分别初始化各个图形
}
//这里的 result 就是需要的结果
Graph result = largest(gs);
}
public static Graph largest(Graph[] arr) {
Graph result = arr[0];
for (int i = 1; i < arr.length; i++) {
if (result.compare(arr[i])) {
result = arr[i];
}
}
return result;
}
}class Triangle extends Graph {}class OtherGraph extends Graph {}