Java代码笔试题重点汇总(4)

招聘笔试题2019-06-04王华老师

8、下面代码的结果是什么?

publicclassTestextendsBase{publicstaticvoidmain(String[] args){Base b = new Test();b.method();Test t = new Test();t.method();}@Overridepublicvoidmethod(){System.err.println("test");}}classBase{publicvoidmethod()throws InterruptedException {System.err.println("base");}}

解答:两次调用输出都是test。多态的情况下,尽管是父类的引用,调用方法时,还是调用子类的方法。

9、以下代码的结果是什么?

package test;publicclassTestextendsBase{publicstaticvoidmain(String[] args){new Test().method();}publicvoidmethod(){System.err.println(super.getClass().getName());System.err.println(this.getClass().getSuperclass().getName());}}classBase{}

解答:第一个输出test.Test、第二个输出test.Base。super很容易让人以为也是调用了父类,实际上还是本类。

10、true or false?

public classTest{public staticvoid main(String[] args) {String str1 = newString("abc");String str2 = newString("abc");System.err.println(str1.equals(str2));StringBuffer sb1 = newStringBuffer("abc");StringBuffer sb2 = newStringBuffer("abc");System.err.println(sb1.equals(sb2));}}

相关推荐

猜你喜欢

大家正在看

换一换