面向对象的三大特性

  • 封装性

对象是将数据与功能组合到一起, 即封装

    • js 对象就是 键值对的集合
      • 键值如果是数据( 基本数据, 复合数据, 空数据 ), 就称为属性
      • 如果键值是函数, 那么就称为方法
    • 对象就是将属性与方法封装起来
    • 方法是将过程封装起来
  • 继承性

所谓继承就是自己没有, 别人有,拿过来为自己所用, 并成为自己的东西

    • 传统继承基于模板
    • 子类可以使用从父类继承的属性和方法。即:让某个类型的对象获得另一个类型的对象的属性的方法

      class Person {
          string name;
          int age;
      }
      
      class Student : Person {}
      var stu = new Student();
      stu.name
      
    • js 继承基于对象
    • 在JavaScript中,继承就是当前对象可以使用其他对象的方法和属性。

      js继承实现举例:混入(mix)

      function mix ( o1, o2 ) {
          for ( var k in o2 ) {
              o1[ k ] = o2[ k ];
          }
      }
      
  • 多态性(基于强类型)只做了解

把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

动物 animal = new 子类(); // 子类:麻雀、狗、猫、猪、狐狸...
动物 animal = new 狗();
animal.叫();

results matching ""

    No results matching ""