Advertisement
Nightgod

多形練習

Jan 25th, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.55 KB | None | 0 0
  1. package 多形;
  2.  
  3. abstract class Shape //這裡加abstract 是因為還沒打完完整的code 先給個雛形?
  4. {
  5.     public double x;
  6.     public double y;
  7.     abstract void area();
  8. }
  9.  
  10. class Circle extends Shape
  11. {
  12.     private double r;
  13.    
  14.     public Circle(double x,double y , double r) //這種算副程式嗎
  15.     {
  16.         this.x=x;
  17.         this.y=y;
  18.         this.r=r;
  19.     }
  20.    
  21.     public void area() //這個是副程式我知道
  22.     {
  23.         System.out.println("圓面積: "+3.1416*r*r);
  24.     }
  25. }
  26.  
  27. class Rectangle extends Shape
  28. {
  29.     private double x1;
  30.     private double y1;
  31.    
  32.     public Rectangle(double x , double y , double x1 ,double y1)
  33.     {
  34.         this.x=x;
  35.         this.y=y;
  36.         this.x1=x1;
  37.         this.y1=y1;
  38.     }
  39.    
  40.     public void area()
  41.     {
  42.         System.out.println("長方形面積: "+(y1-y)*(x1-x));
  43.     }
  44.    
  45. }
  46.  
  47. class Triangle extends Shape
  48. {
  49.     private double x1;
  50.     private double y1;
  51.     private double l;
  52.    
  53.     public Triangle(double x , double y , double x1 ,double y1,double l)
  54.     {
  55.         this.x=x;
  56.         this.y=y;
  57.         this.x1=x1;
  58.         this.y1=y1;
  59.         this.l=l;
  60.     }
  61.    
  62.     public void area()
  63.     {
  64.         System.out.println("三角形面積: "+(y1-y)*l/2.0);
  65.     }
  66.    
  67. }
  68.  
  69. public class 多形
  70. {
  71.     public static void main(String[] args)
  72.     {
  73.         Shape s;
  74.        
  75.         Circle c = new Circle(5.0 , 10.0 , 4.0);
  76.     //這樣Circle不會誤判嗎? class circle 跟 class中的public Circle(double x,double y , double r)
  77.         Rectangle r = new Rectangle(10.0 , 10.0 , 20.0 , 20.0);
  78.         Triangle t = new Triangle(10.0 , 10.0 , 5.0 , 25.0 , 5.0);
  79.        
  80.         for(int i=1;i<=3;i++)
  81.         {
  82.             if(i==1) s=c;
  83.             else if (i==2) s=r;
  84.             else s=t;
  85.             s.area();
  86.         }
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement