多态性

作者: 河神_6961 | 来源:发表于2017-08-09 11:48 被阅读0次

现在已经学习完了关于继承的所有概念,但是并不意味着只要使用继承就可以实现代码的全部重用,而在继承之后又有了一个重要的核心概念:多态性。

在Java里面对于多态的核心表现主要有以下两点:

●方法的多态性:

|-方法的重载:同一个方法名称可以根据参数的类型及个数的不同调用不同的方法体;

|-方法的覆写:同一个父类的方法,可能根据实例化的子类的不同也有不同的实现。

●对象的多态性(前提:方法覆写):

|-【自动,90%】对象的向上转型:父类 父类对象 = 子类实例;

|-【强制,1%】对象的向下转型:子类 子类对象 = (子类)父类实例;

      |-9%是不进行转型,例如:String;

不管是否发生了向上转型,其核心的本质还是在于:你使用的是哪一个子类(new在哪里),而后你调用的方法是否被子类所覆写了。

向下转型指的是将父类对象变为子类对象,但是在这之前需要首先明确一个核心概念,为什么需要向下转型?当你需要使用到子类扩充操作的时候就需要采用向下转型。

但是并不是所有的父类对象都可以向下转型【此概念一般开发中用不到】:如果要想进行向下转型,操作之前一定要首先发生向上转型,否则在转型时会出现:ClassCastException。

但是现在就有一个问题出现了,如果向下转型可能存在有隐患,那么如何转型菜靠谱呢?最好的做法是先进行判断,而后再进行转型,那么就可以依靠instanceof关键字来实现了,此关键字的使用语法如下:

●子类对象 instanceof 类,返回的是boolean型数据;

通过以上的分析就可以清楚,对象的向上转型有一个最为核心的用途:操作参数统一。

总结:

1. 对象多态性实现的核心在于方法的覆写;

2. 通过向上转型可以实现接收参数的统一,而向下转型可以实现子类扩充方法的调用(一般不操作向下转型);

3. 两个没有关系的对象是不能进行转型的,一定会发生ClassCastException,所有向下转型是存在有安全隐患的。

相关文章

  • 详解Java多态

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

  • C#魔帅-lesson_03-多态性

    多态性 多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。多态性可以是静态的或...

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

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

  • 多态

    面向对象特征之三:多态性 1、理解多态性:一个事物的多种形态 2、什么是多态性?对象的多态性:父类的引用指向子类的...

  • 第五章多态性

    第5章 多态性 一、编译时的多态性和运行时的多态性 多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的...

  • 明明白白——虚函数,虚指针,虚表,虚继承

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

  • Java面向对象-多态性

    一、多态性 多态性的体现: 对象的多态性: 向上转型:程序会自动完成父类 父类对象 = 子类实例 向下转型:强...

  • 2020-02-20 Java 面向对象的多态性

    1.多态性的体现: 方法的重载和重写 对象的多态性 2.对象的多态性: 向上转型:程序会自动完成。...

  • 第十八课:多态性

    特点 对象的多态性: 分家导致的财产纠纷 方法 的多态性:双重事件

  • 面向对象-多态性

    /* 面向对象的特征三:多态性 1.多态性指的是什么?多态性,可以理解为一个事物的多种表型形态。 1)方法的重载与...

网友评论

      本文标题:多态性

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