Java多态

多态的前提:

子父类的继承关系

方法的重写

父类引用指向子类对象

Animal a = new Cat();


动态绑定:运行期间(用Java命令去运行一个类)调用的方法,是根据其具体的类型


编译期间:使用Java c编译器去编译一个类,把一个类编译成一个class文件


多态的成员特点:

成员变量:编译时看的是左边,运行时看的是左边,变量没有重写的概念

成员方法:编译时看的是左边,运行时看的是右边

静态方法:编译是看的左边,运行是看的是左边,使用变量去调用静态方法,相当于用变量类型的类名去调用。

总结:编译时看的一直是左边,因为编译是编译器检查,还未创建对象。但是运行时成员方法看的是右边其他(成员变量和静态方法)都是左边

多态中的向上转型和向下转型:

引用类型之间的转换

  向上转型:

    由小到大(子类型转换为父类类型)

  向下转换:

    由大到小:在使用多态的情况下,想要使用子类特有的成员时,需要向下转型。

基本数据类型的转换:

自动转换:

    由小到大:byte short char ---- int ----long ----float----double

    布尔类型不参与转换

  强制转换:

    由大到小:可能会损失精度

多态的优缺点:

优点:可以提高可维护性,提高代码的可扩展性

缺点:父类引用无法直接访问子类特有的成员

           

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、多态 1. 概述 理解:多态可以理解为事物存在的多种体(表)现形态。例如:动物中的猫和狗。猫这个对象对应的是猫...
    陈凯冰阅读 391评论 0 1
  • 什么是多态 链接:https://www.nowcoder.com/questionTerminal/f797be...
    谢谢水果阅读 1,441评论 0 0
  • 多态存在的三个必要条件:继承、重写、父类变量引用子类对象 数据转型 向上转型(up casting):就是将子类的...
    杰哥长得帅阅读 746评论 0 0
  • Java多态 1、多态的总结 面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响...
    wymhuster阅读 791评论 0 3
  • 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期...
    海人为记阅读 404评论 0 0

友情链接更多精彩内容