疑惑点instanceof、动态绑定机制、重定义方法、封装继承多态的理解

在java多态中instanceof的作用

  1. Instanceof 是java中保留的关键字。 它的作用是测试它左边的对象是否为它右边的类的实例,也可以说是判断一个对象指向的空间是否为某个类型,返回值是boolean类型。
    注意:JVM虚拟机会检查obj是否能转换成右边class类型,如果不能转换直接报错,如果不确定类型,则通过编译,具体看运行而定

  2. 使用方法为

boolean result =  obj instanceof class

其中obj 为一个对象,class表示一个类,实例应用可以参考,封装、继承、多态基础练习 - 掘金 (juejin.cn) 里面的练习题

if(e instanceof Manager) { ((Manager)e).manage(); }

注释:这个代码的意思为,判断e这个对象引用指向的空间是否为Manager类型,返回的是Boolean值

动态绑定机制

  1. 这个知识在java多态应用中非常重要,所以自己再次回顾一遍,先看图看例题

 

要非常清楚 Sub s = new Sub()

结论:=(等号)左边是编译类型,=(等号)右边是运行类型

如果是System.out.println(s.count),s.属性,看左边的编译类型,看Sub中的count属性,所以输出的是20

如果是s.display(),s.方法,看右边的与运行类型,看Sub中的count,所以输出的是20

再来👇👇👇

上图中,Base b = s; 意思为:将s的地址赋值给b ,我们再来看后面输出的结果

如果是System.out.println(b.count),s.属性,看左边的编译类型,看的是父类中的count,所以输出的是10

如果是b.display(),s.方法,看右边的运行类型,看的是子类中的count,所以输出的是20

  • 重定义系统方法
  1. 先说一下怎么查看系统方法的源码,在idea中的快捷方法为:ctrl+b

  2. 在Eclipse中查看JDK类库的源代码!!! 

核心提示:在Eclipse中查看JDK类库的源代码!!!
设置:
1.点 window- Preferences - Java - Installed JRES
2.此时Installed JRES右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 Edit..., 会出现一个窗口(Edit JRE)
3.选中rt.jar文件的这一项

设置: 

1.点 “window”-> "Preferences" -> "Java" -> "Installed JRES"

2.此时"Installed JRES"右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 "Edit...", 会出现一个窗口(Edit JRE)

3.选中rt.jar文件的这一项:“c:\program files\java\jre_1.5.0_06\lib\rt.jar” 
点 左边的“+” 号展开它,

4.展开后,可以看到“Source Attachment:(none)”,点这一项,点右边的按钮“Source Attachment...”, 选择你的JDK目录下的 “src.zip”文件

5.一路点"ok",结束。

Dt.jar是关于运行环境的类库,主要是swing的包 
tools.jar是关于一些工具的类

封装继承多态的理解

前提:初学java,对封装继承多态,只是停留在概念上和部分习题上的理解,并不清楚未来的做项目过程中,到底会有什么神奇的功效,而且自己也不是太熟量的掌握了其底层的原理,所以在以后还是会多加巩固、练习相关习题

  1. 封装:私有化属性,公开方法,保证数据的合理性,控制属性的读写
  2. 继承通过extands声明 继承的父类,实现代码复用,java是单继承
  3. 多态:同一对象,同种行为的不同表现形态(父类型引用指向子类型对象)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值