zoukankan      html  css  js  c++  java
  • 关于封装、继承和多态是面向对象编程的三大特征之批判

    先说封装

    封装是一种通行于世的理念,甚至不限于编程领域。我用来写这篇文章的电脑里面,就到处是封装。我所在的公司,每个职能部门其实也是一种封装。。。

    然后,典型的面向过程编程语言C,难道就不能封装了吗?头文件这种设计就是封装理念的一种体现。

    然后是继承

    继承显然是一种语言特性,只需要编程语言和编译器支持就行。不就是代码复用的一种手段吗?面向对象何德何能,就敢篡为己有?

    最后是多态

    多态倒是只有面向对象有,但从严格意义上来说,并不是核心特征,而是对象本身特征衍生出来的一种设计模式而已。

    面向对象编程真正的特征是什么?

    我认为是:数据和逻辑的统一。在面向对象编程中,一个类型里面既包含了对象属性(数据),又包含了方法(逻辑)。强调的是通过公开的方法去操作私有的数据。而不是在对象外部直接操作对象的数据。而且,对于一个对象而言,属性(数据)才是主体,逻辑(方法)则是对象的能力的体现。

    而面向过程编程则相反,虽然同样有方法或者叫函数(逻辑),但逻辑才是主体。虽然也有变量可以存储数据,但变量和属性完全不是一回事。变量只不过是数据的抓手,而属性则因为每个对象都是一个特定的实例,所以属性可以完全代表数据。在面向过程的编程中,逻辑就如同生产线,而数据只是生产线加工生产的产品而已。

  • 相关阅读:
    .net 正在中止线程
    jQuery ajax
    jQuery对checkbox的各种操作
    oracle实验39:触发器
    oracle实验21:建立简单的表,并对表进行简单的DDL操作
    oracle实验20:子查询
    oracle实验18-19:表的连接查询
    oracle实验42:编写包package
    oracle实验25:Sequence序列
    oracle实验17:分组统计函数
  • 原文地址:https://www.cnblogs.com/xuanbg/p/14271040.html
Copyright © 2011-2022 走看看