class Demo
{
public static void main(String []args)
{
Fu f=new Zi();//父类引用指向子类对象
f.show1();
f.show2();
//f.show3();父类中没有该功能,编译不通过
Zi z=new Zi();
z.show1();
z.show2();
z.show3();
System.out.println(f.num);
System.out.println(z.num);
System.out.println(f.num1);
System.out.println(z.num1);
}
}
/*
多态中非静态成员函数特点:
编译时期:参阅引用类型所属的类是否有要调用的方法。有则编译通过,没有编译失败
运行时期:参阅对象所属类中是否有要调用的方法
总结:成员函数调用时,编译看左边,运行看右边
多态中非静态成员变量特点:
无论编译和运行,都参考左边(引用型变量所属的类)
多态中静态成员函数特点:
无论编译还是运行都只参考左边
多态中静态成员变量特点:
无论编译还是运行都只参考左边
*/
class Fu
{
int num=5;
static int num1=4;
void show1()
{
System.out.println("父方法一");
}
void show2()
{
System.out.println("父方法二");
}
}
class Zi extends Fu
{
int num=6;
static int num1=3;
void show1()
{
System.out.println("子方法一");
}
void show3()
{
System.out.println("子方法三");
}
} |
|