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

 

posted @ 2019-01-11 10:12  透明的红萝卜  阅读(422)  评论(0编辑  收藏  举报