继承机制编写程序,利用面向对象思路解决实际问题

package shiyan5;

 

public abstract class Shape {

   public abstract void getArea();

   public abstract void getPerimeter();

 

}

 

 

 

package shiyan5;

import Shape.*;

 

class Circle extends Shape {

   double r;

   public Circle(double r)

   {

      this.r= r;

   }

   public void getArea()

   {

      System.out.println("圆的面积是:"+(3.14*r*r));

   }

   public void getPerimeter()

   {

      System.out.println("圆的周长是:"+(2*3.14*r));

   }

  

 

}

 

 

 

package shiyan5;

import Shape.*;

 

class Rectangle extends Shape {

   public double x;

   public double y;

   public Rectangle(double x,double y)

   {

      this.x= x;

      this.y= y;

   }

   public void getArea()

   {

      System.out.println("矩形的面积是:"+(x*y));

   }

   public void getPerimeter()

   {

      System.out.println("矩形的周长是:"+(2*(x+y)));

   }

 

}

 

 

 

package shiyan5;

import Shape.*;

import java.lang.Math;

 

class Triangle extends Shape {

   public double a,b,c,p,s;

   public Triangle(double a,double b,double c)

   {

      this.a= a;

      this.b= b;

      this.c= c;

   }

   public void getArea()

   {

      if(a+b<= c||a+c <= b||b+c<= a)

          System.out.println("不能构成三角形");

      else

      {

          p = (a+b+c)/2;

          s = Math.sqrt(p*(p-a)*(p-b)*(p-c));

          System.out.println("三角形的面积是:"+s);

      }

   }

   public void getPerimeter()

   {

      if(a+b<= c||a+c <= b||b+c<= a)

          System.out.println("不能构成三角形");

      else

      {

          System.out.println("三角形的周长是:"+(a+b+c));

      }

   }

 

}

 

 

 

package shiyan5;

 

public class TestShape {

   public static void main (String[] args)

   {

      Shape p1,p2,p3;

      p1 = new Circle(1.0);

      p2 = newRectangle(2.0,3.0);

      p3 = newTriangle(3.0,4.0,5.0);

      p1.getArea();

      p1.getPerimeter();

      p2.getArea();

      p2.getPerimeter();

      p3.getArea();

      p3.getPerimeter();

   }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值