本帖最后由 柳 德 彬 于 2013-4-11 20:05 编辑
静态多态性指的是程序在编译时,系统就能决定调用哪个函数,如重载。
动态多态性指在运行中才能动态确定操作指针所指的对象,主要通过虚函数和重写来实现。
java 的多态机制遵循一个原则:当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法 .
简单来说,静态多态性就是指方法的重载,是在一个类中的行为。
动态多态性是指方法的重写,即多态,是在有继承关系的两个或两个以上的类中的行为。概念理解起来有点抽象。还是看个例子吧。- //静态多态性:
- add(int a);
- add(int a,int b);
- add(double a);
- add(double a,double b);
- //动态多态性
- public class A{ }
- public class AB extends A{ }
- public class AC extends A{ }
- public class test{
- go(A a);
- }
复制代码 |