zoukankan      html  css  js  c++  java
  • 深入理解面向对象的三大基本特征

    我们都知道面向对象有三个基本特征:封装,多态和继承。

    封装:

      我先来援引一 位网友写的段子:基本的变量已经不再浮游于一大段一大段的程序中了,它们已经放弃了(其实是程序员不用这种方式了)这种自由自在的存在方式,而是安稳的寄 居于庞大而蹒跚的“对象”内部,与外界隔开来,通过迂回曲折的间接途径与外部世界联系和通信。而这些对象,就是它们这些基本变量的生存机器!

      在面向过程的开发中,变量被暴露在整个程序中,不小心的一个修改就可能导致整个程序出错。 所以封装有利于我们让自己的程序更健壮。这个大家很好理解。

    继承:

      提供了同一类对象共性的处理方法,子类继承父类共性的东西。 这样有利于代码的复用性,这个大家肯定也很好理解。

    多态:

      估计大家不好理解的就是这个概念了,我当初也是这样的,而且一直以为函数的重载也是多态,最近看了某些大神的文章之后才理解了一点点。

      不同类对象对相同行为的不同反应,我们就把它叫做多态。 与继承相对应的是多态提供了对同一类对象差异性的处理方法,子类通过多态重写从父类继承的方法来实现子类的差异性。

      我来举一个简单的例子大家可以理解一下:

    class Aninal{ 叫;}//叫是动物的一个方法

    class 猫 extend Animal{叫;}

    class 狗 extend Animal{叫;}

    Animal 狗 = new 狗();

    Animal 猫 = new 猫();

    狗.叫();

    猫.叫();

      这里的多态的态应该指的是形态,比如狗可以有Animal的形态,真正本质是将对象的型别忘掉,模糊了父类和子类之间的差异,用相同的形式去表达不同的行为! 这样有利于代码在复用性的基础上让子类表现自己的差异性。

  • 相关阅读:
    单调栈问题解析
    Linux进程状态切换
    Shell编程小例子
    Linux之shell编程
    树的遍历框架
    你真的会求1-100有多少个素数吗
    java实现LRU算法
    从上到下打印二叉树 III
    从上到下打印二叉树I
    模拟盘电路板调试过程中出现的问题
  • 原文地址:https://www.cnblogs.com/yilinglingyi/p/4129533.html
Copyright © 2011-2022 走看看