面试题:
构造代码块,构造方法,静态代码的优先级?
静态代码块>构造代码块>构造方法
面试题: 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();
}
}