java多态修改成员变量遇到的问题
先看两个程序,出自课程考试,只记得老师讲了多态中成员方法的使用,真的是不理解成员变量还有门道。
先看main方法
public class Main { public static void main(String[] args) { SuperClass superObj=new SuperClass(); SubClass subObj=new SubClass(); SuperClass superReferToSub=subObj; superReferToSub.method(); superReferToSub.print(); } }
程序一
public class SuperClass { int i=0; public void method(){ System.out.println("父类方法"); } public void print(){ System.out.println(i); } } class SubClass extends SuperClass { //int i=2; public void method(){ i++; System.out.println("子类的i变成了"+i); System.out.println("子类方法"); } }
子类的i变成了1
子类方法
1
程序二
public class SuperClass { int i=0; public void method(){ System.out.println("父类方法"); } public void print(){ System.out.println(i); } } class SubClass extends SuperClass { int i=2; public void method(){ i++; System.out.println("子类的i变成了"+i); System.out.println("子类方法"); } }
子类的i变成了3
子类方法
0