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

    如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法:

    class Person {
        public abstract void run();
    }

    把一个方法声明为abstract,表示它是一个抽象方法,本身没有实现任何方法语句。因为这个抽象方法本身是无法执行的,所以,Person类也无法被实例化。编译器会告诉我们,无法编译Person类,因为它包含抽象方法。

    必须把Person类本身也声明为abstract,才能正确编译它:

    abstract class Person {
        public abstract void run();
    }

    如果一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。

    因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class)。

    使用abstract修饰的类就是抽象类。我们无法实例化一个抽象类:

    这种尽量引用高层类型,避免引用实际子类型的方式,称之为面向抽象编程。

    面向抽象编程的本质就是:

    • 上层代码只定义规范(例如:abstract class Person);

    • 不需要子类就可以实现业务逻辑(正常编译);

    • 具体的业务逻辑由不同的子类实现,调用者并不关心。

  • 相关阅读:
    jdbc-------JDBCUtil类 工具类
    jdbc --- javabean
    MapReduce 找出共同好友
    mapReducer 去重副的单词
    用户定义的java计数器
    mapReducer第一个例子WordCount
    win10 Java环境变量,hadoop 环境变量
    Writable序列化
    io 流操作hdfs
    [常用命令]OSX命令
  • 原文地址:https://www.cnblogs.com/JercanYu/p/14723818.html
Copyright © 2011-2022 走看看