//仅作为学习笔记
class Fu
{
int num = 5;
void method1()
{
System.out.println("fu method_1");
}
void method2()
{
System.out.println("fu method_2");
}
static void method4()
{
System.out.println("fu method_4");
}
}
class Zi extends Fu
{
int num = 8;
void method1()
{
System.out.println("zi method_1");
}
void method3()
{
System.out.println("zi method_3");
}
static void method4()
{
System.out.println("zi method_4");
}
}
class DuoTai3
{
public static void main(String []args)
{
Fu f = new Zi();
f.method1(); //zi method_1
f.method2();//fu method_1
// f.method3(); //error
f.method4();//fu method_4
System.out.println(f.num);//5
Zi z = new Zi();
System.out.println(z.num);//8
z.method1();//zi method_1
z.method2();//fu method_2
z.method3();//zi method_3
z.method4();//zi method_4
/*
在多态中成员函数的特点:(针对非静态成员函数)
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有,编译失败
在运行时期,参阅对象所属的类中是否有调用的方法
简单总结就是:成员函数在多态中调用,编译看左边,运行看右边
在多态中,成员变量的特点:
无论编译还是运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点:
无论编译还是运行,都参考左边
*/
}
}