我们经常提及C++的三性,封装继承和多态。我在这里就用最简洁的语言说说自己的看法。
这三个性质,看似独立,其实是递进的关系。
就好比,封装是部件,继承是组装机器,而多态则是选择调用哪台机器。这个比喻也许不那么合适,但是基本也能表达其含义。
封装,简而言之,就是只给你看到我想给你看的。
继承,子承父业。父亲公有的,被保护的都是儿子的。
多态,则是,附近提供方法的思路,而儿子根据自身情况去具体实现。也是以继承为基础的。
看了一些数据结构的接口设定,就是给你一个方法,从外部来看,你看不到其内部到底如何实现的,具体的数据类型,这也可以理解为一种封装。
继承,我个人认为,是为多态做过渡的,或是说,是为了做构建框架做过渡的。
多态才是主要目的。多态的目的就是,任你方法千千万,我上层调用方法不改变,择最优而用。