初学面向对象编程会遇到封装、继承与多态这三个核心概念,下面来说一下个人对于这三个概念的理解。
1、什么是封装,为什么要用到封装?
抛开抽象概念来讲,封装就是将一些复杂的或是不想让你看到的事物包装起来,叫做封装。从程序的角度来说就是,把一些内部复杂的逻辑或是不想让其他人员修改程序内部进而把部分程序包装起来,叫做封装。举一个 遥控器的例子,无论是电动玩具赛车遥控器还是电视遥控器,其内部都是复杂的电路板,由于技术人员出于对电路板的保护的角度来说或是不想其他人员看到内部丑陋的电路板的角度来说,通过手柄来包装都能达到这俩种效果。
2、什么是继承?为什么要用到继承?
继承,顾名思义,就是继承某个东西或者财产。比如,子代继承父代的财产,一个人继承他爸爸财产房产一类的东西,但是有些东西是不能继承的,比如这个人他爸爸年轻时学到的知识、经历,他不能继承(程序中的私有字段等)。从程序的角度来说,就是子类继承父类的一下字段属性方法等。那为什么要用到继承的? 一切工具以及方法都是为了解决问题而发明创造的。继承也不例外。起初还没有面向对象思想的语言产生时,利用古老的语言或者C语言编程时,当发现一块需求的功能与之前一块已经写过代码实现的功能类似,这怎么办?一般都是粘贴代码,但是慢慢的人们发现,这种办法当代码数量很多时候极有可能少粘贴或是粘贴多了引发不必要的错误。由此,人们想了一种方法叫做继承。
3、什么是多态?为什么要用到多态?
多态,即多种状态。首先说一下为什么要使用多态,是为了解决代码的灵活性这个问题,为了写出通用的代码使得程序更加好维护便捷。譬如,我有好多台打印机,有各种型号的,可以打印黑白的、彩色的和更多彩色的。我想只通过一个按钮(方法)就让这各种型号的打印同时打印。不需要再去每个打印机按一下各自的按钮,若是这样不得累死我,假设有几百台打印机的话。所以这时候就需要多态,通过将子类引用赋给父类对象,通过循环列表 就可以用同一种方法去调用不同的打印机,多方便!