java抽象类的问题
来源:百度知道 编辑:UC知道 时间:2024/05/24 02:03:49
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