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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© likonglin110 中级黑马   /  2016-6-1 22:50  /  881 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4.        编译运行如下Java代码,输出结果是(  D )。
class Base {
        public void method(){
                System.out.print ("Base method");
        }
}
class Child extends Base{       
        public void methodB(){
                System.out.print ("Child methodB");
        }
}
class Sample {
        public static void main(String[] args) {
                Base base = new Child();
                base.methodB();
        }
}
        A.        Base method
        B.        Child methodB
        C.        Base method Child MethodB
        D.        编译错误

11 个回复

倒序浏览
编译看左边,运行看右边.

编译时,Base 类里面并没有methodB方法,所以报错了.

点评

编译看左边,运行看右边. 这句话给力  发表于 2016-6-2 16:11
回复 使用道具 举报 1 0
楼上说的很对
回复 使用道具 举报
这道题是考你多态,多态有个弊端,不能访问子类的特有数据,methodB()是子类的特有数据,所以编译会报错 的
回复 使用道具 举报
理解了[]~( ̄▽ ̄)~*
回复 使用道具 举报
向上转型的注意点!
回复 使用道具 举报
18611643318 发表于 2016-6-1 23:23
编译看左边,运行看右边.

编译时,Base 类里面并没有methodB方法,所以报错了.

好的  知道啦
回复 使用道具 举报
调用方法:编译看左边,运行看右边。
调用变量:编译看左边,运行看左边。
回复 使用道具 举报
温故知新,有点忘了..
回复 使用道具 举报
说的对!!!
回复 使用道具 举报
多态你该好好看看了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马