查漏补缺2(面试小题目)
来源:互联网 发布:淘宝店铺图标是什么 编辑:程序博客网 时间:2024/06/06 01:22
//面试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++++++++");//3show();}void show(){System.out.print("hehe");}}class Zi extends Fu{int num = 9;{System.out.println("shiow..."+num);num = 10;}Zi(){super();//2//可视初始化 5//构造代码块初始化 6System.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
代码注释的标号为执行顺序
0 0
- 查漏补缺2(面试小题目)
- JavaSE知识点查漏补缺(2)
- 面试笔试---C\C++查漏补缺
- java小知识查漏补缺(一)
- 查漏补缺(java)
- 杂记(查漏补缺)
- C语言知识查漏补缺与心得体会(2)
- 软考真题知识点查漏补缺(一)
- 软考真题知识点查漏补缺(二)
- 复习前段时间的(查漏补缺)
- JavaSE知识点查漏补缺(3)
- java查漏补缺(三)
- java查漏补缺(基础篇)
- java查漏补缺
- Widgets查漏补缺
- 查漏补缺
- servlet 查漏补缺
- c#查漏补缺
- jdk1.7新特性
- addChildViewController时viewDidAppear方法得不到调用的问题
- 内连接与外连接的区别
- 导航固定的第二种方法
- 10.javaweb学习之js
- 查漏补缺2(面试小题目)
- C#格式化字符串大全
- dnw在linux下的安装方法
- Maximum Product Subarray -- LeetCode
- 数据结构:链表
- zookeeper本机伪集群模式配置,坑人的配置。
- linux touch 命令
- 【android】在eclipse中更改应用包名及源码包名
- 第一篇—开端