物件导向
OOP
Object-Oriented Programming
OOA
Object-Oriented Analysis
从以前就从网络上得知有四大观念
但没真正搞懂这两个东西
abstraction
polymorphism
网络上的说法也不太一致
最近又再重看了一次
我这次的想法是这样
abstraction 几乎是所有 OOP 的核心思想
用简单的东西表达复杂的东西
只需要知道如何操作各种东西
不需要知道那个东西到底是怎么被做出来的
只是 OOP 着重于用 object 来做到 abstraction
而 functional programming 着重于用 function 来做到
也因次 OOP 衍生出其他三大观念
encapsulation
inheritance
polymorphism
其中
polymorphism 在网络上也是有很多解释
我觉得只要是能用一个百变怪来代表多个东西
那就是 polymorphism
1.
如果 A1 A2 A3... 和 B 的关系
是 extends 或 implements
让 B b = (其中一个 A) a
这时百变怪 b 是(其中一个 A)
b 的函式其实是(其中一个 A)的函式
2.
override
和 1. 有点类似
但只侷限于 extends 的关系
3.
overload
同一个函式名称可以代表多个功能类似但细微不同的运算
不知道我这样想对不对?