package cn.yyhl.day14;
/*
在父子类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式:
直接通过子类对象访问成员变量:
等号左边的是谁,就优先用谁,没有则向上找。
间接通过成员方法访问成员变量:
改方法属于谁,就优先用谁,没有则向上找。
*/
public class ExtendsField {
public static void main(String[] args) {
Fu fu = new Fu();//创建父类对象
System.out.println(fu.numfu);//10 只能使用父类的东西,没有任何子类的内容
System.out.println("============");
Zi zi = new Zi();
System.out.println(zi.numfu);//10
System.out.println(zi.numzi);//20
System.out.println("=============");
System.out.println(zi.num);//优先子类,200
// System.out.println(zi.sb);//到处都没有,编译报错
System.out.println("=================");
//这个方法是子类的,优先用子类的,没有在网上找。
zi.methodzi();//200
//这个方法在父类当中定义的
zi.methodfu();//100
}
}
package cn.yyhl.day14;
public class Fu {
int numfu = 10;
int num = 100;
public void methodfu(){
System.out.println(num);
}
}
package cn.yyhl.day14;
public class Zi extends Fu {
int numzi = 20;
int num = 200;
public void methodzi(){
System.out.println(num);
}
}