理解多态继承封装

好多书,好多题,好多人,好多事都说这三样,OOP的基础么,所以出现频率高是一定的,平时埋头苦干,偶尔停下来的时候有没有仔细想这几个问题呢?

封装是面向对象的根本,拥有封装机制我们才能实现对象这个基本单位,把一系列属性,一系列方法放在一个基本结构类里面,这就是封装,操作就这么简单,可是如果跟面试官回答的时候就这么说,那么好吧基本没分,为啥呢?这就像回答问题:满汉全席都咋做?咋做拿油炒呗,一个意思。所以我们不仅要知道还要知道关键,

封装的关键就是分离了公共的和私有的,面向对象语言一般都有几个关键字private,public, 干嘛用的呢,这就要说到面向对象思想本身,

对象是一系列属性和方法的集合,说的更确切点这些属性和方法应该都是对象的一些特质,比如我们把汽车看成对象,那么发动机就是属性,驾驶就是方法

OK,那么为什么要用到私有公共呢?比如说发动机,我们想让一般用户随便拆开修么?NO,但是我们又必须得有这个东西,怎么办,把它定义成私有属性,那么除了车自己,别人就看不到它了,也不能使用它,这个例子可能并不严密,但是足以说明问题,再回头说驾驶这个方法,车自己能驾驶么?现在已经有自动驾驶了,但是大多时候为了安全我们还是希望由人来驾驶,所以把它做成public的,这样人就能看见它,调用它,所以私有和公共是把事物抽象成对象之后的一种必须,所以才会有封装的要求,所以封装就是为了把公共方法和变量,私有方法和变量分开提供的机制,这才是封装的关键意义。

下面说继承,为什么要有继承呢,因为事物的种类是繁多的,如果我们每一种都抽象成类那就累死了,所以我们喜欢把东西归类,并且提取公共的部分,这样我们就有基类这个东西了,然后通过继承产生更多子类来减少工作量,事实上,继承的意义远不止如此,继承能够有效的分离细节和整体,归纳共性,分离差异,并增强程序的扩展性

下面就要说到多态了,多态字面不好理解,多态简单说的是多种状态,可能这跟编程有什么关系?

刚才说到继承,因为继承我们分离了父类和子类,OK,我写codes的时候我是明确知道我这里到底是想用什么的,比如我要操作卡车,那么我就让卡车实例化,然后驾驶,本质上说卡车应该包含车的所有属性,所以我不需要父类了,但是实际上,绝不是这样的,比如说我有很多不同种类的车,但是现在我需要挨个调用加油这个方法,我需要实例化所有子类再调用他们的加油方法,有没有简单方法呢?当然有,我们只要写一行codes,声明一个父类的实例,但是用不同的子类去实例化,那么调用父类实例的加油方法就等于调用了子类,这就是编译时多态,子类父类不用分,编译器帮你区别

另外我们

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值