查漏补缺2(面试小题目)
2014-09-25 01:37
441 查看
//面试 public class Main { class demo { } public static void main(String[] args) { new demo();//报错,因为主函数是静态的 所以class demo要加static //static不能使用this } public void show() { new demo();//前面实际上省略this } }
1.面试 多态和匿名内部类的结合
提问为什么下述代码编译失败?(据说挂了很多人)
class in { void set() { Object obj = new Object()//匿名内部类的子类对象,并向上转型为Object { public void show() { System.out.print("sdf"); } }; obj.show();//向上转型,限制了子类对象的特有方法,所以编译失败 } } public class Main { public static void main(String[] args) { new in().set(); } }
2.下述代码打印什么?
class Fu { public Fu() { show(); } void show() { System.out.println("呵呵"); } } class Zi extends Fu { int num = 9; Zi() { System.out.println("子构造器..."+num); } void show() { System.out.println("shiow..."+num); } } public class Main { public static void main(String[] args) { new Zi(); } }
show。。。0
子构造器。。。9
为什么?
Zi()
{
实际上省略了,super();调用super,执行Fu构造器里的show,而子类中有show方法,所以覆盖执行子类的show,子类的num默认初始化是0,所以先打印show。。。0,然后num 可视初始化9,然后打印 子构造器。。。9
}
3.下面打印什么?
class Zi { int num = 9; { System.out.println("shiow..."+num); } Zi() { System.out.println("shiow2..."+num); } } public class Main { public static void main(String[] args) { new Zi(); } }
shiow...9
show2...9
4.下面打印什么?
class Fu { Fu() { System.out.println("fu++++++++");//3 show(); } void show() { System.out.print("hehe"); } } class Zi extends Fu { int num = 9; { System.out.println("shiow..."+num); num = 10; } Zi() { super();//2 //可视初始化 5 //构造代码块初始化 6 System.out.println("shiow2..."+num);//7 } void show()//4 { System.out.println("zi show..."+num); } } public class Main { public static void main(String[] args) { new Zi();//1:num = 0 } }
fu++++++++
zi show...0
shiow...9
shiow2...10
结合以上3、4两例:
new Zi()的时,num是默认初始化0,现在执行Zi类的构造函数,然后super执行父类的构造函数,然后执行子类覆盖的show,这时num还是0,然后num显示初始化为9,然后执行代码块初始化,然后Zi()构造函数的show
代码注释的标号为执行顺序
相关文章推荐
- 面试之后对测试工作的查漏补缺和总结
- Java面试查漏补缺
- 面试题目整理(对目前工作烦躁的人来看看,你真正明白多少)
- 面试题目:有序数组建立二叉排序树
- 程序员面试笔试宝典学习记录(一)(常见面试笔试题目)
- 面试题目: PHP 有哪些优缺点?
- 经典.net面试题目
- 一道Java面试题目
- C/C++面试题目集锦
- 【转】轻松搞定面试中的链表题目
- 转一些面试题目!
- 嵌入式与linux相关研发面试题目(转)
- 各种猥琐的Java笔试/面试题目的答案(这是我自己测试得出的答案,如有不对的欢迎批评指正)
- 轻松搞定面试中的二叉树题目
- 轻松搞定面试中的链表题目
- 查漏补缺_1
- 【面试题目】转贴-字符串反转(不包括某些特殊单词)
- 根据自己的经历总结一些安卓工程师的面试经验和题目
- 轻松搞定面试中的二叉树题目