zoukankan      html  css  js  c++  java
  • java抽象类的体现-模板模式

    抽象类是多个具体子类抽象出来的父类,具有高层次的抽象性;以该抽象类作为子类的模板可以避免子类设计的随意性;

    抽象类的体现主要就是模板模式设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行拓展,但是子类在总体上大致保留抽象类的行为方式;

    编写一个抽象父类,该父类提供了多个子类的通用方法,并把一个或多个抽象方法留给子类去实现,这就是模板设计模式;

    模板模式应用的简单规则:

    1.抽象父类可以只定义需要使用的某些方法,其余留给子类去实现;

    2.父类提供的方法只是定义了一个通用算法,其实现必须依赖子类的辅助;

    我的总结:

    如果父类的方法不想被子类覆写,那么可以在前面加上final关键字修饰。

    Eg:

    package reviewDemo;

    //模板模式

    //抽象类中包含很多的抽象方法,子类必须去覆写!

    abstract class Method{

        abstract double mul();//返回值类型如果是void的话,下面报错,因为没有返回值,无法引用!

        abstract double divid();

        void show(){

            System.out.println("面积是:"+mul());//周长

            System.out.println("面积是:"+divid());//面积

        }

    }

    class Square extends Method{

        double d;

       

        public Square(double d) {

            super();

            this.d = d;

        }

        @Override

        double mul() {

            return d * d;

        }

        @Override

        double divid() {

            return 4 * d;

        }

    }

    class Cirle extends Method{

        double r;

       

        public Cirle(double r) {

            super();

            this.r = r;

        }

        @Override

        double mul() {

            return 2 * 3.14 * r;

        }

        @Override

        double divid() {

            return 3.14 * r * r;

        }

    }

    public class Demo16 {

        public static void main(String[] args) {

            Square s = new Square(5);

            s.show();

            Cirle c = new Cirle(4);

            c.show();

        }

    }

  • 相关阅读:
    “我爱淘”冲刺阶段Scrum站立会议1
    《大道至简》阅读笔记3
    冲刺阶段站立会议每天任务3
    冲刺阶段站立会议每天任务2
    冲刺阶段站立会议每天任务1
    cnblogs体验
    《软件工程-理论、方法与实践》读书笔记三
    《软件工程-理论、方法与实践》读书笔记二
    《软件工程-理论、方法与实践》读书笔记一
    典型用户 persona
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11131568.html
Copyright © 2011-2022 走看看