Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package 多形;
- abstract class Shape //這裡加abstract 是因為還沒打完完整的code 先給個雛形?
- {
- public double x;
- public double y;
- abstract void area();
- }
- class Circle extends Shape
- {
- private double r;
- public Circle(double x,double y , double r) //這種算副程式嗎
- {
- this.x=x;
- this.y=y;
- this.r=r;
- }
- public void area() //這個是副程式我知道
- {
- System.out.println("圓面積: "+3.1416*r*r);
- }
- }
- class Rectangle extends Shape
- {
- private double x1;
- private double y1;
- public Rectangle(double x , double y , double x1 ,double y1)
- {
- this.x=x;
- this.y=y;
- this.x1=x1;
- this.y1=y1;
- }
- public void area()
- {
- System.out.println("長方形面積: "+(y1-y)*(x1-x));
- }
- }
- class Triangle extends Shape
- {
- private double x1;
- private double y1;
- private double l;
- public Triangle(double x , double y , double x1 ,double y1,double l)
- {
- this.x=x;
- this.y=y;
- this.x1=x1;
- this.y1=y1;
- this.l=l;
- }
- public void area()
- {
- System.out.println("三角形面積: "+(y1-y)*l/2.0);
- }
- }
- public class 多形
- {
- public static void main(String[] args)
- {
- Shape s;
- Circle c = new Circle(5.0 , 10.0 , 4.0);
- //這樣Circle不會誤判嗎? class circle 跟 class中的public Circle(double x,double y , double r)
- Rectangle r = new Rectangle(10.0 , 10.0 , 20.0 , 20.0);
- Triangle t = new Triangle(10.0 , 10.0 , 5.0 , 25.0 , 5.0);
- for(int i=1;i<=3;i++)
- {
- if(i==1) s=c;
- else if (i==2) s=r;
- else s=t;
- s.area();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement