网站开发建设是否需要经营许可,成考过来人的忠告,试用网站如何做,专题页是什么看这段代码Father father new Son();父类引用指向子类对象#xff0c;这是java的多态特性#xff0c;有多态引到动态绑定#xff0c;如何引入呢#xff0c;看这个代码#xff1a;classFather{privateString nameString;public voidspeak() {System.out.println(this.getC…看这段代码Father father new Son();父类引用指向子类对象这是java的多态特性有多态引到动态绑定如何引入呢看这个代码classFather{privateString nameString;public voidspeak() {System.out.println(this.getClass()父类My name is:this.nameString);}publicFather() {};publicFather(String nameString) {this.nameString nameString;}}class Son extendsFather{privateString nameString;publicSon(String nameString) {this.nameString nameString;}public voidspeak() {System.out.println(this.getClass()子类My name is:this.nameString);}}Father father new Son(黄山);father.speak();执行的结果是class Son子类My name is:黄山定义的是父类引用但是这个引用指向了堆上的子类对象Son执行的是子类的speak并没有执行父类的。所谓的动态绑定就是指的这个方法在运行时候根据具体指向的对象来确定。这是我的理解。静态绑定与动态绑定相对的是静态绑定所谓静态绑定就是方法在程序运行前就已经确定。java的静态绑定可以简单理解为程序编译期间的绑定。java当中的方法只有finalstaticprivate和构造方法是静态绑定。动态绑定与静态绑定另外有一种说法是前期绑定与后期绑定。可见java的向上转型与多态是通过动态绑定来实现的。语言实现了后期绑定同时必须提供一些机制可在运行期间判断对象的类型并分别调用适当的方法。动态绑定只针对方法而不针对属性看程序public classJavaDt {/***paramargs*/public static voidmain(String[] args) {//TODO 自动生成的方法存根Father father newSon();father.speak();System.out.println(father.nameString);}}classFather{public String nameString 父类属性;public voidspeak() {System.out.println(this.getClass()父类My name is:this.nameString);}publicFather() {};publicFather(String nameString) {this.nameString nameString;}}class Son extendsFather{public String nameString 子类属性;public voidspeak() {System.out.println(this.getClass()子类My name is:this.nameString);}}执行结果是class Son子类My name is:子类属性父类属性father.name 读取的是父类的属性。如果想访问父类属性只要将属性包装成方法就可以了。