java抽象类的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 02:03:49
这是求体积的程序的部分 (*.java是文件名)
Geometry.java
public abstract class Geometry{
public abstract double getArea();
}

Pillar.java
public class Pillar{
Geometry bottom;
double height;
Pillar(Geometry bottom ,double height){
this.bottom=bottom;
this.height=height;
}

void changeBottom(Geometry bottom){
this.bottom=bottom;
} 这个方法是干嘛用的

public double getVolume(){
return bottom.getArea()*height;
}
}

Example.java
public class Example{
public static void main(String args{}){
Pillar pillar;
Geometry tuxing;
……
pillar.changeBottom(tuxing); 这个语句有什么用

……
}
}

顾名思义,改变底的大小。@

与抽象类无关.~

Geometry提供了表示几何形状的抽象基类,其中提供了一个计算面积的抽象方法.
Pillar类用来表示可以以任意几何形状为底的柱体,进而提供getVolume方法计算柱体体积.

changeBottom和作用在于设定柱体底面的形状.其参数应为Geometry的子类(毕竟抽象类是不能实例化的)

故楼主的问题的解答如下
1.用来设定柱体底面形状(这是一个抽象的想法),比如假设有rectangle继承自Geometry类,用以表示矩形,则changeBottom(Rectangle rec);则表示底面是矩形的柱体.
2.Geometry tuxing;
……
pillar.changeBottom(tuxing);
中则是省略了一部实例化过程,比如在省略号部分加入一段:
Geometry tuxing;
tuxing=new Rectangle(10,20);//如前文,Rectangle继承自Geometry类,表示
//长宽分别为10和20的矩形
pillar.changeBottom(tuxing);//表示设定柱体piller的底面是一个长宽分
//别为10和20的矩形

1>
changeBottom(Geometry bottom){
this.bottom=bottom;
}
changeBottom(),带参方法,参数为Geometry类的一个对象
给当前类里声明的Geometry类的对象赋值:this.bottom=bottom;
this.bottom指的是之间声明的Geometry bottom;
等号后面的bottom指的是changeBottom(Geometry bottom)方法里的参数bottom;

2>
Pillar pillar;
Geomet