面向某个东西,就表明这个东西是主导因素。 面向对象,那么对象就是主导因素。因此我们首先实现的不是函数,而是“类”,也即对象。 首先我们知道世界上有很多类,比如人类,爬虫类,鱼类。而人类中还有超人类,变异人类,巨人类等等(仅供参考)。 在 面向对象时,我们实现程序,就是先实现某个类,比如“超人类”。然后我们实现它其中的一个方法,比如“cry”。这个cry方法是源自于它的父类“人类”的。如果你不实现它,那么超人类哭起来也和普通人类没有什么不同。这就是面向对象中的“继承”。 而在 面向过程的编程时,我们只知道方法“cry”,我们首先实现了它,而不考虑任何的其他要素。假设这个cry函数实现了人类的cry。 过了一段时间,我觉得超人类可以用一滴眼泪让人起死回生,那么应该怎么编程呢?一般来说,在cry里写肯定就行不通了,得用superman_cry函数来替代。而人类的cry怎么办?我们把它改写成了human_cry。
- 这个时候调用者就头疼了:什么时候调用human_cry,什么时候调用superman_cry呢?
- 而且是不是每个类想要cry,就要加一个函数呢?
- 假如我想实现超人类的其他行为,又该怎么做呢?是不是用superman_beat,superman_eat这样来增加一系列函数呢?
- 而人类中的函数失效了以后,超人类涉及到调用人类的函数又怎么办呢?