zoukankan      html  css  js  c++  java
  • Java抽象类计算体积


    abstract class Geometr //定义抽象类,几何图形
    {
    public abstract double getArea(); //抽象函数,得到底面积
    }

    class Pillar //柱子类 
    {
    Geometr bottom; //柱子的底面
    double height; //柱子的高
    Pillar(Geometr bottom,double height) //柱子的构造函数,两个参数,一个是底,一个是高
    {
    this.bottom=bottom; //形参的bottom给私有变量的bottom初始化
    this.height=height; //形参的height给私有变量的height初始化
    }
    public double getVolume() //求体积
    {
    if(bottom==null) //判断底面积是否为空
    {
    System.out.println("没有底,无法计算!");
    return -1;
    }
    return bottom.getArea()*height; //有底面积和高,就返回体积
    }
    }

    class Circle extends Geometr //圆类继承几何图形
    {
    double r;
    Circle(double rr) //圆的构造函数
    {
    r=rr;
    }
    public double getArea() //抽象函数的实例化
    {
    return 3.14*r*r; //返回圆柱底面积
    }
    }

    class Rectangle extends Geometr //长方体继承几何图形
    {
    double a,b;
    Rectangle(double aa,double bb) //长方面形构造函数
    {
    a=aa;
    b=bb;
    }
    public double getArea() //实例化抽象函数
    {
    return a*b; //返回四棱柱底面积
    }
    }

    public class geometry {
    public static void main(String []args) //主函数
    {
    Pillar pillar; //柱子类,声明一个对象
    Geometr bottom=null;
    pillar=new Pillar(bottom,100);
    System.out.println("体积:"+pillar.getVolume());

    bottom=new Rectangle(12,22);
    pillar=new Pillar(bottom,58);
    System.out.println("体积:"+pillar.getVolume());

    bottom=new Circle(10);
    pillar=new Pillar(bottom,58);
    System.out.println("体积:"+pillar.getVolume());
    }
    }

    运行结果:

  • 相关阅读:
    大端与小端编号方法的区别
    socket、listen 等函数的打电话隐喻
    windows 网络编程报错 error LNK2019
    有符号数与无符号数之间的转换
    C++ 代码命名建议
    编写启发式代码的方法
    求给定数目的前 n 个素数
    不使用 “+” 实现加法操作
    二叉搜索树中两个节点的旋转
    Python玩转硬件:TPYBoard-Micropython开发板大盘点
  • 原文地址:https://www.cnblogs.com/duanqibo/p/14105741.html
Copyright © 2011-2022 走看看