MyGraphi--Java抽象类、抽象方法

本文介绍了一个抽象基类MyGraghic及其派生类,包括矩形、圆、梯形、三角形和菱形。每个类都实现了计算面积和周长的方法。通过实例化这些类,可以计算出具体图形的面积和周长。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /**
 * @(#)MyGraphi.java
 *圆 circle 菱形 diamond 椭圆 ellipse 矩形 rectangle 长方形的 rectangular
 *梯形 trapezia 梯形不规则四边形 trapezium 梯形不等边四边形 trapezoid 三角形 triangle
 *
 * @author
 * @version 1.00 2009/11/1
 */

abstract class MyGraghic {

 float Square,Girth;
 abstract float reSquare(); //抽象方法
 abstract float reGirth();
 MyGraghic()  { 
  Square=0;
  Girth=0;
 }
 MyGraghic(float s,float g) {
  Square=s;
  Girth=g;
 }
 public static void main(String arg[]) {
   MyRectangle r = new MyRectangle(6,9);
   MyCircle c = new MyCircle(9);
   MyTrapezia tp = new MyTrapezia(6,3,5,8,9);
   MyTriangle tg = new MyTriangle(2,5,6);
   MyDiamond d = new MyDiamond (6,9);
  System.out.println("矩形面积:"+r.reSquare());
  System.out.println("矩形周长:"+r.reGirth());
  System.out.println("圆面积:"+c.reSquare());
  System.out.println("圆周:"+c.reGirth());
  System.out.println("梯形面积:"+tp.reSquare());
  System.out.println("梯形周长:"+tp.reGirth());
  System.out.println("三角形面积:"+tg.reSquare());
  System.out.println("三角形周长:"+tg.reGirth());
  System.out.println("菱形面积:"+d.reSquare());
  System.out.println("菱形周长:"+d.reGirth());

 }
}

class MyRectangle extends MyGraghic {  //矩形
 float rectLen,rectWid;
 MyRectangle(){ 
  super();
  rectLen=0;
  rectWid=0;  
 }
 MyRectangle(float len,float wid){ 
  super(len*wid,(len+wid)*2);
  rectLen=len;
  rectWid=wid;  
 }
 float reSquare(){ //改写方法返回矩形面积
  Square=rectLen*rectWid;
  return Square;  
 } 
 float reGirth()  { //周长
  Girth=(rectWid+rectLen)*2;
  return Girth;
 }
}

class MyCircle extends MyGraghic { //圆
 float radio;
 MyCircle() {
  super();
  radio=0;  
 }
 MyCircle(float fr) {
  super((float)Math.PI*fr*fr,(float)Math.PI*fr*2);
  radio=fr;  
 }
 float reSquare() {  //改写方法返回圆面积 
  Square=(float)Math.PI*radio*radio;
  return Square;  
 } 
 float reGirth(){   // 改写方法,返回圆周 
  Girth=(float)Math.PI*radio*2;
  return Girth;
 }
}
class MyTrapezia extends MyGraghic{  //梯形
    float high,abLen,undLen,blen,clen;
 MyTrapezia (){
  super();
  high = abLen = undLen = 0;
  clen=blen=0;
 }
 MyTrapezia (float h,float a,float u,float b,float c){
  super((a+b)*h/2,a+b+c+u);
  high = h;
  abLen = a;
  undLen = u;
  blen=b; clen=c;
 }
 float reSquare() {  //改写方法返回梯形面积 
  Square=(abLen+undLen)*high/2;
  return Square;  
 } 
 float reGirth(){   // 改写方法,返回梯形周长 
  Girth=abLen+undLen+blen+clen;
  return Girth;
 }
 }

class MyTriangle extends MyGraghic{  //三角形
    float aLen,bLen,cLen;    //需要考虑三边长的关系:还未实现
 MyTriangle(){
  super();
  aLen=bLen=cLen=0;
 }
 MyTriangle(float a,float b,float c){
  super((float)Math.sqrt(((a+b+c)/2)*((a+b+c)/2-a)*((a+b+c)/2-b)*((a+b+c)/2-c)),a+b+c);
  aLen=a;
  bLen=b;
  cLen=c;
 }
 float reSquare() {  //改写方法返回三角形面积 
  Square=(float)Math.sqrt((aLen + bLen + cLen)/2*((aLen + bLen + cLen)/2-aLen)
   *((aLen + bLen + cLen)/2-bLen)*((aLen + bLen + cLen)/2-cLen));
  return Square;  
 } 
 float reGirth(){   // 改写方法,返回三角形周长 
  Girth=aLen + bLen + cLen;
  return Girth;
 }
}
class  MyDiamond extends MyGraghic{ //菱形
    float slen,llen;
 MyDiamond (){
  super();
  slen=llen=0;
 }
 MyDiamond (float l,float s){
  super(l*s,2*(float)Math.sqrt(s*s+l*l));
  slen=s;
  llen=l;
 }
 float reSquare() {  //改写方法返回三角形面积 
  Square = slen*llen;
  return Square;  
 } 
 float reGirth(){   // 改写方法,返回三角形周长 
  Girth=2*(float)Math.sqrt(slen*slen+llen*llen);
  return Girth;
 }
  }

/**
** 声明抽象方法,而因为子类不是抽象类,所以要改写抽象方法
   super() 指代父类,将类的成员方法定义
   MyDiamond()用两种方式构造方法:有参数和无参数,无参数是对方法成员的初始化。
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值