• Java入门——day12


    一、今日学习

    1.Java中多态的实现

    (1)Java中多态的体现具体表现在方法的重载和覆盖上

    (2)覆盖是指子类重写父类的方法

    (3)子类重写父类中的方法,即子类中的方法与父类的方法保持一致,但是方法的修饰符一定要大于等于父类中方法的修饰符,此时在子类中调用与父类相同的方法时,调用的是子类的,并非父类的方法。


     2.类型检测——向上转型/向下转型

    >向上转型——父类对象的引用指向子类对象

    >向下转型——再向上转型的基础上再次指向子类的对象

    (1)向上转型

    语法:父类 对象 =new 子类()

    有时使用向上转型会丢失子类特有的方法

    (2)向下转型

    语法:父类 对象1=new 子类();

               子类 对象2=(子类)对象1;

    (3)总结

    • 父类引用指向子类对象,子类引用不能指向父类对象

    • 把子类对象直接付给父类引用叫upcasting向上转型,向上转型,不用强制转型

    • 把指向子类对象的父类引用赋给子类引用叫downcasting向下转型,要强制转型

    • upcasting会丢失子类特有的方法,但是子类overriding父类的方法,子类方法有效


    3.动态绑定

    (1)动态绑定:当虚拟机调用一个实例方法时,它会基于对象实际的类型(只能在运行时得知)来选择所调用的方法,这就是动态绑定。具体表现在向上转型上。

    (2)静态绑定:在程序编译时就绑定好。Java中的变量都是静态绑定的,方法只有private、static和final是静态绑定的。

    二、遇到问题

    不太理解向下转型对象之间的关系以及为什么向下转型能够调用子类特有的方法

    三、明日学习

    static、final、abstract关键词

  • 相关阅读:
    用curl发起https请求
    curl: (60) SSL certificate problem: unable to get local issuer certificate 错误
    单例模式
    黑窗口命令
    推荐的php安全配置选项
    sublime配置大全
    数据库三范式最简单最易记的解释
    linux 下安装python3
    restframwork 接口及优化
    Django的orm练习---多表查询
  • 原文地址:https://www.cnblogs.com/znjy/p/13337743.html
Copyright © 2020-2023  润新知