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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

糊图

中级黑马

  • 黑马币:9

  • 帖子:95

  • 精华:0

© 糊图 中级黑马   /  2016-6-30 23:42  /  486 人查看  /  7 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

                class A {
                        public void show() {
                                show2();
                        }
                        public void show2() {
                                System.out.println("我");
                        }
                }
                class B extends A {
                        public void show() {
                                show2();
                        }
                        public void show2() {
                                System.out.println("爱");
                        }
                }
                class C extends B {
                        public void show() {
                                super.show();
                        }
                        public void show2() {
                                System.out.println("你");
                        }
                }
                public class Test2DuoTai {
                        public static void main(String[] args) {                               
                                B b = new C();
                                b.show();
                        }
                }

疑问:编译看父类,是没有问题的,而编译的时候有些不太理解,b.show() 访问c类中的show()方法,里面有个super.show()方法,那么会访问父类中的show()方法,而父类中的show()中又有show2()方法,我一直理解的是show2()方法会执行父类中的show2()方法,但是实际上是访问了子类中的show2()方法,有没有哪位帮忙解决一下,谢谢

7 个回复

倒序浏览
我也同样很疑惑,调用super.show();时去执行父类(B)中的show()方法,里面的show2()方法又跑到子类(C)去执行show2()方法.只能是记住动态绑定时,通常是编译看左边,运行看右边原则。

点评

希望有有懂的人来讲解一下  发表于 2016-7-1 00:23
回复 使用道具 举报
java还没看到面向对象部分。但是用之前c++去理解,不太能明白你的说法。等我这几天学到了再来看看
回复 使用道具 举报
C类中 类似于重写了B类的show2()函数访问的当然是子类对象
方法只要名字相同、参数的个数和类型都相同,那么子类的方法就会覆盖父类的方法,不论public还是private,不会同时运行。
父类的方法如果不想让子类重写,使用final关键字修饰方法就可以了。
回复 使用道具 举报
ylca 发表于 2016-7-1 09:25
C类中 类似于重写了B类的show2()函数访问的当然是子类对象
方法只要名字相同、参数的个数和类型都相同,那 ...

很正确。
回复 使用道具 举报

刚才试了自测考试! 挂在反射了
回复 使用道具 举报
子类中有的就不用父类的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马