动态动态性指的是在子类和父类的类体中均定义了具有基本相同声明的非静态成员方法。所谓非静态成员方法指的是在成员方法定义中成员方法的声明不含方法修饰词static。这时也称为子类的成员方法对其父类基本相同声明的成员方法的覆盖(override)。这里基本相同声明的成员方法要求子类的成员方法和其父类对应的成员方法具有相同的方法名,相同的参数个数,对应参数的类型也相同,而且子类的成员方法应当比其父类具有相同的或者更广的访问控制方式。
package J_Teacher2;
class J_Employee
{
public int m_workYear;//工作的年限
public J_Employee()
{
m_workYear=1;
}//J_Employee构造方法结束
public void mb_printInfo()
{
System.out.println("该职工的工作年限为"+m_workYear);
} //方法mb_printInfo结束
} //类J_Employee结束
public class J_Teacher2 extends J_Employee
{
public int m_classHour; //授课的课时
public J_Teacher2()
{
m_classHour=96;
} //J_Teacher构造方法结束
public void mb_printInfo()
{
System.out.println("该教师的工作年限为"+m_workYear);
System.out.println("该教师的授课课时为"+m_classHour);
} //方法mb_printInfo结束
public static void main(String arges[])
{
J_Employee a=new J_Employee();
a.mb_printInfo();
a=new J_Teacher2();
a.mb_printInfo();
} //方法main结束
} //类J_Teacher结束
利用动态多态性使得可以通过父类型的引用调用子类型的成员方法。