java多态修改成员变量遇到的问题

Posted sumeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

技术分享图片

技术分享图片

技术分享图片

 



以上是关于java多态修改成员变量遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

1.0Java 继承与多态 - 成员变量访问特点

java——继承封装多态概念和例子

封装,继承,多态,接口

java:多态

java 多态

JAVA-初步认识-第十章-多态-成员变量