美文网首页
多态消息的理解

多态消息的理解

作者: 许先森的许 | 来源:发表于2016-06-30 11:28 被阅读275次

对象有一个奇妙的机制就是多态消息。

刚看到这句话时就一个想法:什么鬼?后来才知道其实就是多态的应用。

那么多态消息是什么呢?

消息是一个术语:

指一个对象调用另一个对象的成员函数(c++)或者方法(java)。

多态机制有两种:

一种是静态多态,即编译时就已经确定,运行时调用的是已经确定的方法(消息),常见的就是重载:方法名相同,参数不同。

一种是动态多态,即编译时不确定调用哪个方法,一直延迟到运行到那个地方才能确定,因此多态方法又叫延迟方法。

多态有两种实现方式:

一种是子类继承父类。

一种是类实现接口。

两种方法的核心目的都是以一个消息(调用一个方法方法)来实现运行时的不同效果,方式为:对父类方法的复写或对接口方法的实现。

因此总结出使用多态有一个法则:

声明的总是父类型或者接口类型,创建的时实际类型。举例来说用多态创建一个arraylist,就应该用这样的语句

List list = new ArrayList(),

而不是

ArrayList list = new ArrayList()。

定义方法参数也应该优先使用父类类型或接口类型,比如一个方法定义参数是list数组,那就应该用List而不是ArrayList,这样才符合多态机制。

为什么?因为这样声明最大的好处在于结构的灵活性:假如某一天我认为ArrayList的特性无法满足我的需求,需要用LinkedList来代替它,那么只需要把对象创建的地方new ArrayList()改为new LinkedLIst()即可,其他代码一概不动。不然可能就要改变这个函数的传参或者重载这个函数,将大大增加代码量和结构的臃肿。

所以反过来就可以得到多态的作用:

对结构和设计的复用。定义功能和组件时定义接口,实现留在之后的流程中。

相关文章

  • 多态消息的理解

    对象有一个奇妙的机制就是多态消息。 刚看到这句话时就一个想法:什么鬼?后来才知道其实就是多态的应用。 那么多态消息...

  • C++ 多态及虚函数

    多态 什么是多态?通俗来说就是相同对象收到不同消息或不同对象收到相同消息时产生不同的动作。 静态多态 静态多态也叫...

  • JAVA面向对象学习(多态性)

    多态性的理解和应用 1.1. 多态性的理解 多态性:在Java中,多态性是它的一大特性,可以理解成为是事物的多种形...

  • c++多态

    什么是多态性? 多态:相同对象收到不同消息或不同对象收到相同消息时产生不同的动作。C++支持两种多态性:编译时多态...

  • 多态的理解

    多态的概念和作用(深入理解) - 流寂 - 博客园

  • 多态的理解

    定义 指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就...

  • 多态的理解

    多态就是把不同对象抽象出共性但还保留之前的属性。

  • 详解Java多态

    详解Java多态 多态定义 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态...

  • knowledge

    封装、继承、多态 多态 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多...

  • iOS中多态,继承,分类,扩展

    多态 多态:不同对象以自己的方式响应相同的消息的能力叫做多态。程序中的多态:父类指针指向子类对象多态的原理 动态绑...

网友评论

      本文标题:多态消息的理解

      本文链接:https://www.haomeiwen.com/subject/rnoxjttx.html