代码如下:
package 计算体积_泛型;
class Cone<E>{
double height;
E bottom; //用泛型类E声明对象bottom;
public Cone (E b){
bottom = b;
}
public void setHeight(double h){
height = h;
}
public double computerVolume(){
String s = bottom.toString(); //泛型变量只能调用从Objict继承或重写的方法。
double area = Double.parseDouble(s);
return 1.0/3.0*area*height;
}
}
class Rect{
double sideA,sideB,area;
Rect(double a,double b){
sideA = a;
sideB = b;
}
public String toString (){
area = sideA*sideB;
return ""+area;
}
}
class Circle{
double area,radius;
Circle(double r){
radius = r;
}
public String toString (){
area = radius*radius*Math.PI;
return ""+area;
}
}
public class Example_1 {
public static void main(String []args){
Circle circle = new Circle(10);
Cone<Circle> coneOne = new Cone<Circle>(circle); //创建一个圆锥对象。
coneOne.setHeight(16);
System.out.println(coneOne.computerVolume());
Rect rect = new Rect(15,23);
Cone<Circle> coneTwo = new Cone<Circle>(circle); //创建一个方锥对象。
coneTwo.setHeight(98);
System.out.println(coneTwo.computerVolume());
}
}