资讯专栏INFORMATION COLUMN

一起学习面向对象——多态

jeyhan / 3018人阅读

摘要:理解多态多态是指一个引用类型在不同情况下的多种状态。即指同一个方法多种调用方式也可以理解成多态是指通过指向父类的引用,来调用在不同子类中实现的方法。使用普通函数实现获取参数获取参数长度使用类的形式实现无参数算法一个参数算法两个参数算法

理解多态

多态是指一个引用(类型)在不同情况下的多种状态。即指同一个方法多种调用方式.

也可以理解成:多态是指通过指向父类的引用,来调用在不同子类中实现的方法。

demo:

使用普通函数实现:

function add() {
    var arg = arguments,    // 获取参数
        len = arg.length;    // 获取参数长度

    switch(len) {
        case 0: return 10;
        case 1: return 10 + arg[0];
        case 2: return arg[0] + arg[1];
    }
}

// test:
console.log( add() );        // 10
console.log( add(5) );        // 15
console.log( add(6, 7) );    // 13

使用类的形式实现:

function Add() {
    // 无参数算法
    function zero() {
        return 10;
    }

    // 一个参数算法
    function one(num) {
        return 10 + num;
    }

    // 两个参数算法
    function two(num1, num2) {
        return num1 + num2;
    }

    this.add = function() {
        var arg = arguments,
            len = arg.length;

        switch(len) {
            case 0:
                return zero();
            case 1:
                return one(arg[0]);
            case 2:
                return two(arg[0], arg[1]);
        }
    }
}

// test:
var a = new Add();
a.add();        // 10
a.add(5);        // 15
a.add(6, 7);    // 13

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80105.html

相关文章

  • 夯实Java:从面向对象说起

    摘要:面向对象与面向过程的区别要知道,二者并不是非此即彼,而是相辅相成的。而面向过程,则在微观上对对象内部进行具体的实现。面向对象的三大特性说到面向对象,就不得不说其三大特性封装继承和多态。封装封装是面向对象最基础的特性。 作者:伯特出处:github.com/ruicbAndroid/LoulanPlan声明:本文出自伯特的《LoulanPlan》,转载务必注明作者及出处。 刚学习 Jav...

    hearaway 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    Lyux 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    AaronYuan 评论0 收藏0
  • C语言和C++的区别和联系

    摘要:我们来介绍语言和中的区别和联系。语言没有函数重载,支持函数重载。语言中产生函数符号的规则是根据名称产生,这也就注定了语言不存在函数重载的概念。简单来说,它和普通变量的区别只是不能做左值而已。需要注意的是,的指针有可能退化成语言的指针。 C语言虽说经常和C++在一起被大家提起,但可千万不要以为...

    kid143 评论0 收藏0

发表评论

0条评论

jeyhan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<