关于java的动态绑定机制下面说说动态绑定机制。相信看完这篇文章,你会对动态绑定机制有所了解。网上大多用一句话来概括:当一个对象被调用时,方法会绑定到该对象的内存地址/运行类型上。在调用对象的属性时,没有动态绑定机制,在声明的地方使用。这里我们展开说一下。动态绑定机制,简单来说就是在创建以父类为编译类型的子类对象时绑定子类操作类型。当我们再次调用该方法时,我们可以有序地找到该方法并执行该方法。订购的电话。动态绑定机制会出现在多态性中。多态性是Java的三大重要属性之一。动态绑定机制基于封装、多态和继承。要了解动态绑定机制,总理必须了解对象的多态和继承,以及编译类型和运行类型。这是前提。网上有详细的解释,这里就不展开了。废话书不多,直接上代码演示解释,详细解释会在代码的注释里。首先我们需要创建父类Personclass//创建父类publicclassPerson{//简单创建两个属性privateStringname;私人年龄;//创建行为方法,在方法中调用创建的say方法publicvoidpreferences(){say();}//创建方法publicvoidsay(){System.out.println("Iamhuman!!!");}}CreatesubclassStudent//创建子类publicclassStudentextendsPerson{//创建学生的属性privateintscore;//重写行为publicvoidpreferences(){say();}//重写say方法publicvoidsay(){System.out.println("我是学生!!");}}首先我们调用say方法。publicclassDemo01{publicstaticvoidmain(String[]args){//创建一个学生Personstudent=newStudent();//调用student的say()方法,因为我们的编译类型是Person类,运行类型是Student类,动态绑定机制是绑定运行时类型。//所以,我们在调用say()方法的时候,调用的是Student类的say()方法student.say();//返回“我是学生”//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//如果我们注销student类的say()方法,他会在找到say后再次询问学生类的方法无效父类调用say方法。returnsIamahuman,效果相当于}}不过重点来了。...........如果我们调用haviours方法,他的方法叫什么//调用student的haviours方法,由于我们的编译类型是Person类,运行类型是Student类,动态绑定机制就是绑定运行类型。//所以,当我们调用haviours()方法时,对象就绑定到了Student类,所以调用了Student类的say()方法student.haviours();//返回我是学生!!!不过,可能有人会有疑问,如果把Student类中的havious方法注释掉,你会这么想吗?子类Student中没有havious方法,调用父类的havious方法,然后havious调用父类的say方法???不好意思,他调用了子类Student的Say方法publicclassDemo03{publicstaticvoidmain(String[]args){//创建一个学生Personstudent=newStudent();//调用student的haviours方法,因为我们的编译类型是Person类,操作类型是Student类,动态绑定机制就是绑定操作类型。//所以,当我们调用havious()方法时,由于子类没有havious方法,所以调用父类的havious方法,而在父类的havious中,调用say方法。这时候动态绑定机制就是绑定运行类型。对象绑定到Student类,所以调用Student类的say()方法student.haviours();//返回我是学生!!!}}介绍完动态Bondi机制对方法的绑定,接下来说说对属性的影响。在调用对象的属性时,没有动态绑定机制,在声明的地方使用。这句话很好理解。即动态绑定机制对属性没有影响,可以放心调用。动态绑定机制(完)。结论:在网上找相关的动态绑定机制的时候,看到没有对动态绑定进行详细的解释,这也是一个小难点,于是看了书,研究了一下,得出的结论是没有办法世界。人多了就会有路。
