zoukankan      html  css  js  c++  java
  • 面向抽象编程

    abstract类中的abstract方法只允许声明,比允许实现,要实现抽象方法必须将abstract类的对象转变为abstract类的子类的上转型对象。

    实例分析:

    Geometry抽象类:
    package zjl.java;
    public abstract class Geometry {
        public String name;
        public abstract double getArea();
    }
    Circle子类:
    package zjl.java;
    
    public class Circle extends Geometry{
        double r;
        Circle(double r,String s){
            this.r = r;
            this.name = s;
        }
        public double getArea(){
            return 3.14*r*r;
        }
    }
    Rectanger子类:
    package zjl.java;
    
    public class Rectanger extends Geometry{
        double a,b;
        public Rectanger(double a,double b,String s) {
            this.a = a;
            this.b = b;
            this.name = s;
        }
        public double getArea(){
            return a*b;
        }
    }
    Pillar类:
    package zjl.java;
    public class Pillar {
        Geometry bottom;
        double height;
        Pillar(Geometry botton,double height){
            this.bottom = botton;
            this.height = height;
        }
        public double getVolume(){
            return bottom.getArea()*height;
        }
    }

    主类:

    package zjl.java;
    
    public class TestAbstractProgram {
    
        public static void main(String[] args) {
            Pillar pillar;
            Circle circle = new Circle(2.3,"circle");
            Rectanger rectanger = new Rectanger(1.2, 2.9,"rectanger");
            Geometry bottom;
            //botton = new Geometry();       //abstract 类不能用new 创建对象
            bottom = circle;
            pillar = new Pillar(bottom, 10);
            System.out.println(bottom.name + "'s volume is "+ pillar.getVolume());
            bottom = rectanger;
            pillar = new Pillar(bottom, 10);
            System.out.println(bottom.name + "'s volume is "+pillar.getVolume());
        }
    
    }

    运行结果:

    circle's volume is 166.106
    rectanger's volume is 34.8

  • 相关阅读:
    【drp 11】使用Junit简单测试接口方法
    【Struts 1】Struts1的基本原理和简介
    【drp 10】JSP页面中model1和model2的区别
    【drp 9】Servlet生命周期
    【Nginx 3】FTP远程文件下载
    [drp 8]get和post的区别,以及乱码问题的解决
    svn update错误
    easyui只打开一个tab
    ubuntu安装skype
    单独使用CKfinder上传图片
  • 原文地址:https://www.cnblogs.com/zhangjialu2015/p/5358695.html
Copyright © 2011-2022 走看看