码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java多态之动态绑定机制


    动态绑定机制

    看题目,写出运行后的结果
    在这里插入图片描述
    结果 40 30
    可能有点同学认为是30 20
    别慌
    我们继续向下看

    深入

    如果吧
    子类B的
    sum()删除

    再看输出
    sum()的输出
    子类没该方法
    看父类

    public int sum(){
    return getI()+10;
    }
    
    • 1
    • 2
    • 3

    这里就有疑问了,这个getI()父类和子类都有,调用的是谁的呢

    这里讲一下动态绑定机制

    概念

    1.当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定
    2.当类方法(不包含main方法)调用属性时,没有动态绑定机制,哪里声明,哪里调用(就近原则)(main看编译类型喽)

    所以肯定是调子类喽,所以sum输出是30

    再看如果把子类sum1()删除
    sum1()会输出什么
    先从子类找,没有,找父类
    sum1()调用父类的

    public int sum1()
    {
    	return i+10;
    }
    
    • 1
    • 2
    • 3
    • 4

    那么这里的i调用的是哪里的呢

    根据概念的第二条,就近,调用本类的,如果本来没有找父类,都没有就报错

    所以是A(父类)的属性i,也就是10

    当然我们的第一个问题也就不攻自破了。

    当然如果B类没有i

    B打方法里面的i就要找A类喽!!

  • 相关阅读:
    day9-操作系统初始化函数init-2
    电脑便签功能在哪里找?电脑桌面便签怎么添加?
    EfficientNet笔记
    表格与表单
    SQL优化常用的几种方式
    超级好用的 excel 导入导出框架:excel-import-export
    ​Mysql数据库查询好慢,除了索引,还能因为什么?
    公司员工微信如何管理?
    深入理解蓝牙BLE之“安全管理Part1(GAP)”
    Vue2:生命周期
  • 原文地址:https://blog.csdn.net/y_k_j_c/article/details/125466356
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号