如果调用一个方法,子类和父类都有
列如
Person p=new Student
Person是父类,有run方法
Student是子类,也有run方法
则调用p.run调用的是子类的run方法。
这就是动态绑定,此时从运行类型开始找。
因为p的运行类型是Student。
假如Student有一个特有方法study
而Person中没有,
此时不能调用子类的特有方法p.study是错的。
因为编译类型是Person类而Person中没有Student的特有方法study。
本文深入探讨了Java中的动态绑定概念,通过实例展示了如何在Person(父类)和Student(子类)中调用相同方法。当使用Person类型的引用p指向Student实例时,调用p.run()将执行子类的方法。同时,由于编译类型为Person,调用子类特有的方法p.study()会报错,这是由于多态性的限制。动态绑定使得代码更具灵活性,但同时也需注意类型转换和方法访问的限制。
如果调用一个方法,子类和父类都有
列如
Person p=new Student
Person是父类,有run方法
Student是子类,也有run方法
则调用p.run调用的是子类的run方法。
这就是动态绑定,此时从运行类型开始找。
因为p的运行类型是Student。
假如Student有一个特有方法study
而Person中没有,
此时不能调用子类的特有方法p.study是错的。
因为编译类型是Person类而Person中没有Student的特有方法study。

被折叠的 条评论
为什么被折叠?