美文网首页
java中多态

java中多态

作者: surrealtire | 来源:发表于2020-01-09 23:12 被阅读0次

点个关注不迷路~~

多态是java面向对象思想极为重要的一部分,在学到java多态时,感觉学的特别迷,遂参考了java核心技术卷1,但里面介绍关于多态的内容很少,于是又看了一本java编程思想第四版(中文和英文),结合自己实践,把自己的理解总结如下:

多态:我的理解就是对一个对象来说,可以属于不同的类。多态允许方法(函数)调用一种类型,什么样的类型呢——和其他类型既有区别又有联系的类,只要他们具有继承关系。当然这种说法并不准确。

1.调用方法和成员变量

父类如下

两个子类如下

狗类

猫类

使用一个test类来打印结果

显然,我们发现,对于类中的方法,打印的结果都是子类的,但对于成员变量而言,打印的结果不同,多态调用打印的变量是父类的。

如果我们调用子类中独有的但父类没有的方法和变量尝试打印。显然,eclipse报错了,因为多态的前提是继承和重写;

父类不变,子类如下

其中红色箭头所指的是父类中没有,但子类有的变量和方法。

Test类如下

即无法调用。

2.向上转型

编写一个以父类为参数列表的类型的函数,并用该函数调用子类对象,操作如下;

依然是方法看子类,成员变量看父类。但为什么以父类为参数的函数可以调用子类,因为子类是特殊的父类。函数在调用子类时,子类向上转型成为了父类类型,这样做的好处是,不必给每个子类都去编写各自的函数,提高了效率。

3.向下转型

向上转型是自然而然进行的,不需要额外的操作,但向下转型,即由父类转向子类,需要强制转换。即加一个小括号,如下图红色方框所示。

相关文章

  • java多态之简述

    Java的第三大特性------>多态 一、什么是多态 多态根据其字面意思就是多种形态的意思,那么在Java中的多...

  • java中多态

    点个关注不迷路~~ 多态是java面向对象思想极为重要的一部分,在学到java多态时,感觉学的特别迷,遂参考了ja...

  • Java中多态

    一、多态详解 Java 多态目录:1.定义2.优点3.三个必要条件-继承、重写、父类引用指向子类对象4.虚方法4....

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运行时...

  • 2018-01-25

    多态机制 java语言,实现多态...

  • java编程思想(一)---笔记

    《java编程思想》这本书被视为java经典,再此总结一些重点知识: 1.java多态性理解 所谓多态就是指程序中...

  • 【JAVA】Java中的多态

    0x01 多态 一个类对象有各种形态,比如狗是狗类,也是动物类,一个表示当前类,一个表示其父类 0x02 多态的特...

  • 日常记忆之Java多态

    Java多态 多态是同一个行为具有多个不同表现形式或形态的能力多态性是对象多种表现形式的体现。在Java中,所有的...

  • java抽象类和接口小记

    Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中...

网友评论

      本文标题:java中多态

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