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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wuchangfeng 中级黑马   /  2015-7-18 22:31  /  737 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在主函数应填入( )。
class A {
   public void test() {
       System.out.println("A类的test()方法");
   }
}
class B extends A {
   public void test() {
       System.out.println("B类的test()方法");
   }
   public static void main(String args[]) {
                                          
   }
}
    A.  A a = new B();
        a.test();
    B.  A a = new A();
        a.test();
    C.  B b = new A();
        b.test();
    D.  new B().test();

10 个回复

倒序浏览
A
多态,重写,你好好看看多态的概念就懂了
回复 使用道具 举报
A、D   一个多态,一个匿名对象的使用
回复 使用道具 举报
对于匿名对象还是不太懂,再看下视频吧
回复 使用道具 举报
辉大大 发表于 2015-7-18 23:31
A、D   一个多态,一个匿名对象的使用

对于匿名对象还是不太懂,再看下视频吧
回复 使用道具 举报
751309401 发表于 2015-7-18 23:05
A
多态,重写,你好好看看多态的概念就懂了

主要还是对匿名对象不了解
回复 使用道具 举报
本帖最后由 wing-SF 于 2015-7-19 10:03 编辑

答案:A、D
A: 父  父=new 子();是可以的,这样会创建一个子类的对象,然后调用该对象的test方法。B: 父  父=new  父();也是编译可以通过的,这样是new了一个父类的对象,并且调用父类的test方法,结果不是我们想要的
C: 子  子=new   父();这样编译时通不过的,子类对象的引用不能指向父类对象
D:   new  子().test();是可以的,这个new 子()会创建一个匿名的子类对象,然后使用"."操作符,调用该子类对象的test方法
回复 使用道具 举报
wing-SF 发表于 2015-7-19 10:00
答案:A、D
A: 父  父=new 子();是可以的,这样会创建一个子类的对象,然后调用该对象的test方法。B:  ...

非常感谢,最近学着感觉没什么思路,好多东西写了不知道什么意思
回复 使用道具 举报
wuchangfeng 发表于 2015-7-19 09:25
主要还是对匿名对象不了解

匿名对象就是个没名字的对象;
相对于A.  A a = new B();
                a.test();
对于 D来说.  new B().test();就相当于a.test();
      
回复 使用道具 举报
多态,重写
回复 使用道具 举报

嗯 刚入门,知识点太多,记不住
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马