package Day11;
public class Test_04 {
public static void main(String[] args) {
Fu s1 = new Fu();
zi z =new zi();
System.out.println(z.num);
System.out.println(s1.num);
// //show(s1);
// //show(s2);
// Fu s2 =new zi();
// s2.method1();
// s2.method2();
/*成员变量的特点:编译看左边,运行看左边,
成员变量不具备多态性,通过引用变量来访问其包含
的实例变量,当父类,子类出现重名变量的时候,多态状态
下看的是父类,因为在创建子类对象时,堆内存中其实是
两个变量的,一个是父类的num,一个是子类的num,你再拿
父类的引用,去找num的时候,他就找到自己的了
*/
}
public static void show(Fu s){
if(s instanceof Fu){//父类拿父类方法
s.method1();
s.method2();
}else if(s instanceof zi){//子类拿子类方法
s.method1();
// s.method3();
}
}
}
class Fu
{
int num=5;
void method1(){
System.out.println("Fu method_1");
}
void method2(){
System.out.println("Fu method_2");
}
}
class zi extends Fu
{
int num=9;
void method1(){
System.out.println("zi method_1");
}
void method3(){
System.out.println("zi method_3");
}
}
Day11多态部分-4
最新推荐文章于 2024-05-03 16:12:22 发布