實驗三 類的繼承和多態性
1.(1)編寫一個接口ShapePara,要求: 接口中的方法: int getArea():獲得圖形的面積。int getCircumference():獲得圖形的周長
(2)編寫一個圓類Circle,要求:圓類Circle實現接口ShapePara。
該類包含有成員變量:
radius:public 修飾的double類型radius,表示圓的半徑。
x:private修飾的double型變量x,表示圓心的橫坐標。
y:protected修飾的double型變量y,表示圓心的縱坐標。
包含的方法有:
Circle(double radius) 有參構造方法。以形參表中的參數初始化半徑,圓心為坐標原點。 double getRadius():獲取半徑為方法的返回值。void setCenter(double x, double y):利用形參表中的參數設置類Circle的圓心坐標。void setRadius(double radius):利用形參表中的參數設置類Circle的radius域。
?
?
?
2.定義圖形類Shape,該類中有獲得面積的方法getArea();定義長方形類Rect,該類是Shape的子類,類中有矩形長和寬的變量double a,double b,設置長和寬的方法setWidth()、setHeight(),使用getArea()求矩形面積;利用getArea方法實現題1中圓面積的求解。
package zhongqiuzuoye;public interface ShapePara {public double getArea();public double getCircumference();}
?
package zhongqiuzuoye;public class Circle implements ShapePara {public double radius;private double x;public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}protected double y;public Circle(double radius) {}void setCenter(double x, double y){this.x=x;this.y=y;}public double getArea() {return 3.14*radius*radius;}@Overridepublic double getCircumference() {// TODO 自動生成的方法存根return 0;}}
package zhongqiuzuoye;public class Shape {public void getArea(){} }
package zhongqiuzuoye;public class Rect extends Shape{private double width;private double height;public double getWidth() {return width;}public void setWidth(double width) {this.width = width;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}Rect(double width,double height) //帶有兩個參數的構造方法,用于將width和height屬性初化; {this.width=width;this.height=height;}public void getArea() //求矩形面積的方法 {System.out.println("矩形的面積為:"+width*height);}}
?
package zhongqiuzuoye;public interface A {public static void main(String args[]) { Rect rect=new Rect(12.76, 25.28); System.out.println("矩形對象的寬:"+rect.getWidth()+" 高:"+rect.getHeight()+"面積為:"); rect.getArea();} }
?