java继承中方法调用的动态绑定
2015-05-07 14:36
423 查看
一个父类对象通过向上转型获得子类对象的引用,子类中定义了和父类一样的方法,当父类对象调用自身的方法时,会转向调用子类相应的方法。例如:
定义父类Shape。Circle和Triangle都继承了父类Shape,同时对父类中两个方法draw()和erase()都进行了重写。
在RandShapeGenerator类的main方法中定义父类的两个对象sCricle,和sTriangle接收分别来自Cricle和Triangle的对象引用,然后shape的两个对象调用方法draw,不要以为这时调用的是父类中的方法,而是两个子类中的方法。
最后运行结果如下:
Circle's draw
Triangle's draw
这就是对象的动态绑定
package mian4; class Shape { public void draw(){}; public void erase(){}; } class Circle extends Shape{ public void draw() { System.out.println("Circle's draw"); } public void erase() { System.out.println("Circle's erase"); } } class Triangle extends Shape{ public void draw() { System.out.println("Triangle's draw"); } public void erase() { System.out.println("Triangle's erase"); } } public class RandShapeGenerator { public static void main(String args[]) { Shape sCircle = new Circle(); Shape sTriangle = new Triangle(); sCircle.draw(); sTriangle.draw(); } }
定义父类Shape。Circle和Triangle都继承了父类Shape,同时对父类中两个方法draw()和erase()都进行了重写。
在RandShapeGenerator类的main方法中定义父类的两个对象sCricle,和sTriangle接收分别来自Cricle和Triangle的对象引用,然后shape的两个对象调用方法draw,不要以为这时调用的是父类中的方法,而是两个子类中的方法。
最后运行结果如下:
Circle's draw
Triangle's draw
这就是对象的动态绑定
相关文章推荐
- Java动态绑定的理解-调用对象方法的执行过程
- java基础入门-动态绑定-调用方法的过程
- Java中对象方法的调用过程&动态绑定(Dynamic Binding)
- java基础入门-动态绑定-调用方法的过程
- java基础入门-动态绑定-调用方法的过程
- Java 动态绑定方法 多态
- java 方法调用绑定
- Java动态调用方法
- Java学习资料-方法覆盖、方法重载、多态与动态绑定
- 关于Java调用C写的动态链接库的具体实现方法,自己捉摸了好久,现在算是来造福大众了 T _T
- [Java问题] 继承方法调用问题
- python 继承 及调用被重写的父类方法(未被绑定的方法)
- Java方法调用绑定
- Java传统多线程的实现有两种方法,继承Thread类或者实现Runnable即可.线程启动时调用start()方法.
- Java继承关系下的构造方法调用
- 错误记录--Java中子类继承父类必须调用父类的构造方法?
- java 调用动态(未知) 类的动态(未知)方法
- Java方法调用的绑定
- Java动态调用类中方法
- java 方法调用绑定--《java编程思想》学习笔记