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); } }