首页 > 技术文章 > 深入理解面向对象的三大基本特征

yilinglingyi 2014-11-28 22:39 原文

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

封装:

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

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

继承:

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

多态:

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

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

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

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

class 猫 extend Animal{叫;}

class 狗 extend Animal{叫;}

Animal 狗 = new 狗();

Animal 猫 = new 猫();

狗.叫();

猫.叫();

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

推荐阅读