面试题:
- 构造代码块,构造方法,静态代码的优先级?
- 静态代码块>构造代码块>构造方法
面试题: overload和override的区别?
overload:方法重载
方法名一样,参数不同,和返回值没有关系
参数不同:
1)参数个数不同
2)参数类型不同
override:方法重写 (子类定义一个和父类一摸一样的方法声明)
继续中使用到的
2 关于this和super的区别?
this:代表当前类的对象
super:代表父类空间标识,理解为代表父类的对象
应用场景:
this:
super:
成员变量
this.成员变量
super.成员变量
成员方法
this.成员方法()
super.成员方法();
构造方法
this()/this("..")
面试题:
- 局部内部类访问局部变量,那么会出现问题?(jdk7以前包括jdk7,这个有问题的)
- 会报错,需要给局部变量添加final修饰...
- 为什么这个局部变量必须用final修饰?
- 应为局部变量在内部类中还要被使用,将变量变成固定值,在内存中始终存在,通过main方法中调用内部类中的成员。
匿名内部类面试题:
按照要求,补齐代码
interface Inter { void show(); }
class Outer { //补齐代码 }
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
要求在控制台输出”HelloWorld” - */
interface Inter3{
void show() ;//public abstract
}
class Outer7{
//补齐代码
public static Inter3 method() {//返回的是接口:当前并不提供接口的子实现类,所以只能用匿名内部类 return new Inter3() { public void show() { System.out.println("helloworld"); } };
}
}
//测试类
public class Test {public static void main(String[] args) {
Outer7.method().show();
}
}
原文地址:http://blog.51cto.com/13670525/2105507
时间: 2024-11-14 12:58:51