Java静态多态性和动态多态性有何区别

时间:2025-03-26 12:08:17
静态多态性指的是程序在编译时,系统就能决定调用哪个函数,如重载。 
动态多态性指在运行中才能动态确定操作指针所指的对象,主要通过虚函数和重写来实现。 
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);