面向抽象编程
本来一位是学习java的一个小知识点,没想到百度一番确实打开了一扇大门。此文会不定时扩展
什么是面向抽象编程
-
通俗讲解(个人理解,有局限请谅解):
定义一份 ‘规范’,所有的用户使用 ‘规范’。而具体怎么实现,使用者并不需要担心,实现方式由各个工厂依照 ‘规范’开发。
-
代码话说:
abstract class Person { public abstract void run(); } class Student extends Person { @Override public void run() { System.out.println("student run"); }; } class Teacher extends Person { @Override public void run() { System.out.println("teacher run"); } } public class Abstract { public static void main(String[] args) { // 寻常普通使用 Student s = new Student(); s.run(); Teacher t = new Teacher(); t.run(); System.out.println(); // 面向抽象编程,仅需要声明 Person 对象,但是以 Student 实例赋之 Person p1 = new Student(); p1.run(); Person p2 = new Teacher(); p2.run(); } }
参考链接
[1] 廖雪峰 抽象类
[2] 余叶 《代码里的世界观:通往架构师之路》
[3] 图灵教育 面向抽象编程