前言

学习永无止境

对象导论

论抽象

抽象是什么?所有的编程语言都是提供抽象机制的。辟如:汇编就是对底层机器的轻微抽象,而Basic、C是对汇编的抽象,我们发现这些抽象要求【解决问题是要基于计算机结构】,而不是【所要解决问题的问题结构】。我们需要把【基于计算机结构的抽象】和【所要解决问题的问题结构】进行关联,比较复杂。

故,面向对象编程思想是一个很重要的东西。把复杂问题抽象成多个对象,见对象犹如见到了问题,这个对象可以有处理问题的各种方法。良好的抽象+编程逻辑,可以使外人更好的理解解决的问题。

论继承

当很多物品存在相同的特征的时候,我们可以把这些东西抽象出来,或者可以说这些东西属于什么哪一类,辟如,鸡、鸭、鱼、猪统称为东西,那么这么多的动物具有什么特征呢?进一步的抽象,吃饭、走路、喝水。。。这个动作就是方法我们抽象出来,就组成一个抽象对象。我们可以说鸡、鸭、鱼、猪是动物,但不能说动物就是鸡、鸭、鱼、猪。所以,鸡、鸭、鱼、猪可以继承动物这个东西,具有动物所有的特征,但,也可以有自己独特的特征。

可能说的比较浅显,但是大致这个意思

论多态

明确一个概念,被继承的类叫【基类、超类、父类】,继承类叫【导出类、继承类、子类】。调用方法就是给对象发送消息告诉他我要执行这方法,给爷run。所以,理论对象会绑定这个方法。故,分前期绑定和后期绑定。

前期绑定:

在方法创建的时候就可以确认这个对象绑定了这个方法,我们都知道java多态是基类可以调用导出类的方法,只要基类接收到子类的对象,这个是【向上转型】。故,java是后期绑定。

后期绑定:

在接收的消息的时候,判断需要调用的方法是哪个对象里,并不是一早写好,这个就是多态。

当然多态也有问题,我们理想的状态下,实现的特征只在基类的特征范围里。但是,不无可能,导出类会有其他的特征。但是,基类不能调用这个特征。因为基类只知道自己声明的特征,并不知道导出类的特殊的特征。

最终,我们发现java的核心思想是:

抽象—>继承—>多态,都是有关联的。