A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下,s2.display()输出的是"S1",而s2.method()输出的是"子类的show".
同样是子类调用父类的方法,如果父类方法中访问的是成员变量,就访问父类的,如果父类方法中访问的是成员方法,就访问子类的,是这样吗?
如果是的话,又是为什么呢
package com.itheima;

class Check {
        String s = "Outer";

        public static void main(String[] args) {
                S2 s2 = new S2();
                s2.display();
                s2.method();
        }
}

class S1 {
        String s = "S1";

        public void display() {
                System.out.println(s);
        }
       
        public void method() {
                show();
        }
       
        public void show() {
                System.out.println("父类的show");
        }
}

class S2 extends S1 {
        String s = "S2";
       
        public void show() {
                System.out.println("子类的show");
        }
       
}

1 个回复

倒序浏览
因为你子类重写了父类的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马