试题
考点

java语言-面向对象编程OOP-嵌套类&内部类

面5笔5

给出以下代码

请给出结果:()

A.运行时抛出异常

B.true

C.Fred

D.第三行编译错误

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

正确答案是 B

本题涉及匿名内部类、多态和覆盖三个知识点。 语句

Object o=new Object(){
            public boolean equals(Object obj){
                return true;
            }
        };

创建了一个匿名内部类,并将所创建的匿名对象赋给 Object (多态:子类对象赋给超类引用)。同时,该匿名内部类重写了 Object 类的 equals 方法。

在执行语句

o.equals(“Fred”)

时,根据多态及覆盖原则,会调用匿名内部类重写后的 equals 方法。

关于 “Java 内部类 ” 和 "Java 继承、多态与类的复用" 的更详细的阐述,请查看两篇博文 “http://blog.csdn.net/justloveyou_/article/details/53245561” 和 “http://blog.csdn.net/justloveyou_/article/details/52798666”。 

评论

加载更多