Java域隐藏、静态方法隐藏、动态绑定、静态绑定
来源:互联网 发布:经典算法 java 例子 编辑:程序博客网 时间:2024/04/30 06:42
1、域隐藏
当子类继续父类时,出现相同字段时父类字段不会将子类字段覆盖,而只是将其“隐藏”。
例子:
父类:
- public class Super {
- public int field=0;
- public int getField() {
- return field;
- }
- }
子类:
- public class Sub extends Super {
- public int field=1;
- public int getField() {
- return field;
- }
- public int getSuperField(){
- return super.field;
- }
- }
测试:
- public class Test {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Super sup=new Sub();
- System.out.print(sup.field+" "+sup.getField());//对于域的访问由编译器决定(静态绑定)
- }
- }
结果:0 1
结论:从结果可以知道,子类field字段并没有将父类的field字段覆盖,而只是“隐藏”而已;另外也可以知道对于域(字段)的访问是由编译器决定的,即静态绑定。
2、静态方法隐藏
例子:
父类:
- public class Father {
- public static void display(){
- System.out.println("father");
- }
- }
- public class Son extends Father{
- public static void display(){
- System.out.println("son");
- }
- }
测试:
- public static void main(String[] args) {
- Father f=new Son();
- Son s=new Son();
- s.display();
- f.display();
- }
结果:
son
father
结论:对于静态方法,子类中的静态方法也不会覆盖父类中的静态方法,而只是“隐藏”而已,具体调用哪个方法取决于对象引用类型;对于普通方法则是覆盖。
3、静态绑定与动态绑定
静态绑定是指在程序运行前方法已经由编译器绑定;由final,static,private的方法、构造方法以及字段是前期绑定(静态绑定)
动态绑定是指在程序运行过程中动态绑定需要被执行的方法。除上述方法以外的方法均属于动态绑定。
0 0
- Java域隐藏、静态方法隐藏、动态绑定、静态绑定
- JAVA之域隐藏、静态方法隐藏以及动态、静态绑定
- Java 动态绑定(多态)和静态绑定,隐藏
- Java之重载,隐藏,静态绑定,动态绑定
- Java静态绑定与动态绑定 隐藏 多态
- Java【动态绑定、静态绑定】-动态绑定
- java动态绑定静态绑定
- Java动态绑定 静态绑定
- java 静态绑定 动态绑定
- Java 动态绑定,静态绑定
- 静态绑定 动态绑定
- Java方法的动态绑定与静态绑定
- java的动态绑定与静态绑定
- java的动态绑定与静态绑定
- java的动态绑定与静态绑定
- JAVA中的静态绑定和动态绑定
- java的动态绑定与静态绑定
- java中动态绑定与静态绑定
- 进程间通信方式
- 共享内存通讯编程
- 深入理解Java异常
- solr4.7中文分词器(ik-analyzer)配置
- ScrollView中的contentSize、contentOffset、contentInset
- Java域隐藏、静态方法隐藏、动态绑定、静态绑定
- 次小生成树 【总结】
- Java并发包中的几种ExecutorService
- Mongoose入门
- 【Android进阶篇】自定义应用权限
- CSS代码压缩/格式化工具
- 文章标题
- c语言计算器
- 机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size