从“封装、继承、多态”看构建知识网

简介: 从“封装、继承、多态”看构建知识网

年前给徒弟验收设计模式,问到面向对象的基础知识。

– 面向对象的三大特性都有啥?

答曰:继承、封装、多态。

– 嗯,没问题,也有问题。

– 没问题啊,可不就是这三个吗。难道这有问题?

– 从答案的角度来说,没问题。从思考的方式,也就是从知识网构建的角度来考虑的话,是有问题的。

从面向过程到面向对象,是有一个过程的。而这个过程是符合认知规律的。

封装:

  • 面向过程到面向对象,第一步就是封装。
  • 封装是为了解耦合。
  • 在面向过程的代码面前。拿C/S的代码来说,所有的代码都集中在一个个的窗体中。封装把他们中具有抽象出类,使每个对象都包含它能进行操作所需要的所有信息,对象不必依赖其他对象来完成自己的操作。
  • 封装有很多好处:良好的封装能减少耦合;类内部的实现可以自由地修改;类具有清晰的对外接口:属性和方法。

继承:

  • 继承是类与类之间的一种关系,既然已经产生了类,那当然是已经进行了封装。所以继承是封装之后,排第二位。
  • 继承是为了减少重复代码,增强代码的可维护性。

多态

  • 多态是在继承的基础上出现的。
  • 多态的实现在代码上是通过重写和重载实现的。重载在编译时就实现了多态性。重写override是在运行时实现多态性。方法重写,是在父类中声明virtual方法,在子类中去override它,从而达到不同的子类调用相同的方法,出现不一样的效果。也就是实现了多态。有父子类了,肯定就是有继承了。所以多态排第三位。

也就是说,如果对整个面向对象的过程大致了解的话,回答一般是这样的顺序:封装、继承、多态。(刻意说反的就不算了)

如果顺序不对的话,说明,这些知识是零星的散落在你的脑海,却没有连成一片。也就是说没有很好地构建知识网。

这是我对构建知识网的一个小例子的思考,鄙人拙见,望各位看官随意提提意见。

参考文章:[http://www.cnblogs.com/mountain-mist/articles/1214996.html]

——————————————–华丽的分割线———————————————

通过给徒弟验收,我也回顾了这些知识,又有了比之前清晰的认识。教学相长,喻于此。

我总是不清楚继承和类实例化的区别。潜意识里总是把他们搞混。

现在也来区分一下。

  1. 继承,是类与类之间的关系。子类继承父类,子类就拥有了父类的所有实现细节。
  2. 实例化,是类与对象之间的关系。类实例化成对象。

代码即人生。文字可以描述静物、描述故事、描述感情。音乐也可以,舞蹈也可以,代码同样可以。


相关文章
|
2月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
6月前
|
C++
C++中的封装、继承与多态:深入理解与应用
C++中的封装、继承与多态:深入理解与应用
142 1
|
6月前
|
编译器 C++
[C++] 面向对象的三大特性:封装、继承和多态
[C++] 面向对象的三大特性:封装、继承和多态
76 0
|
Java
1.8 封装、继承、多态
1.8 封装、继承、多态
41 1
|
设计模式 数据安全/隐私保护
面向对象编程基础:封装、继承、多态与抽象的全面解析
面向对象编程基础:封装、继承、多态与抽象的全面解析
119 0
|
Java
面向对象编程基础:类、对象、封装、继承和多态
面向对象编程基础:类、对象、封装、继承和多态
106 0
浅谈 面向对象三大特性:封装 继承 多态
浅谈 面向对象三大特性:封装 继承 多态
86 0
|
存储 Java 数据库
Java面向对象之封装和继承
本篇文章记录博主对面向对象部分的学习,带大家认识Java基础知识——包与继承,后续内容将持续更新。
83 0
Java面向对象之封装和继承
|
安全 Java 数据安全/隐私保护