理解封装继承多态
诸位周知,计算机是对现实世界的一种模拟,现在从严格意义而言,其实同时更是一种扩充。
编程语言是程序员通过编译器与计算机进行沟通的一种工具。
C++编程语言是面向对象的设计理念,也就是以对象为核心。
那么,为了能达到代码的复用性,在建立对象之前,必须要抽象设计一个对象的雏形,对头,这个雏形就是所谓的类的概念。
设计类时,从宏观上分析,每一类事物包括各类事物其之间都是高度对立与统一的。
所以,不外乎只有两种需要区别的成员,一个是各自的属性,因为属性是区别彼此独立的根本性因素。
另一个是行为,因为行为是联系彼此统一的本质性表现,或者从程序角度而言称为方法,或是函数。
封装性就是一种保证对象各自独立的编程哲学观。
既然是以对象为核心的编程理念,人算不算一个对象呢?OK!
那么,现实中的人是不是完全透明的?是不是随便就可以允许“掏心掏肺”的?
不是的吧!好了,那就意味着程序在处理这样的问题时也是要适当的限制住某些成分可见性,保证各自对象有一定的私有隐私。
不可能当程序员创建一个新对象时,让你想看到关于对象的哪里都是随便的。即就是程序中想访问到所有属性也不是随心所欲的。
各个数据成员都是公有的那是不可能是事情,凡事也都有个对立面,相对于公有的就一定也有许多属性即就是数据成员甚至某些行为,都有可能是私有的。
话说回来,总得有个访问权限的限制。
说通俗一点,你的心是别人无法完全看到的,这也就是你的私有成分。
即使你儿子继承了你的财产,但是他也无法拥有你的心,或者说真正的了解你的心,即就是访问到你的这个“变量”的内容,心永远属于你自己的。
然而,比如:一个人深深的惹你生气了,你打了别人一锤,当然你得用手同时心里一定想着才这样干的,那么,也就是说,你的内部方法却是可以访问你私有成员的。
你的公共的属性成分,就相当于你的身体的对外可以呈现的所有,都是别人可以访问的。
比如,别人与你说话的过程就相当于访问了你的嘴,耳朵。
你与大自然之间进行的不间断的呼吸,是通过嘴与心脏进行的,这也就相当于在系统中不仅仅访问了你的私有数据成员,而且访问了你的公共数据成员。
继承性就很好理解,一个人继承父类的同时,拥有了父类的部分资源。
多态性,课本如是说,是指同一个消息,不同的对象会以不同的行为作为响应。
课本总是在以学术的角度解释概念,所谓的专家分析,都是那帮专门忽悠我们大家的人分析的!扯淡呢!这也毒害了不少学生的。
其实,这个概念很简单的。讲通俗一点,这样的场景见过吧。
那一天,上那一节课,那个老师,在那个讲台上,独自口若悬河,犹如滔滔江水,连绵不绝,自娱自乐的讲课,
而下面坐的学生,大都手持手机,无休止的按着,貌似一副公务很繁忙的老总,有的甚至在都睡觉了,当然还有几个在云里雾里的听着老师的讲讲课。
好吧!同样是老师源源不断发出的消息,对于同一个教室的不同学生各自有不同的行为表现。这就是所谓的多态的经典例子。