内部类形式:
1、成员内部类(ps:不能直接new成员内部类的对象)
public class Outer {
private int age = 99
//成员内部类
public class Inner {
private int age = 99
public void test(){
int age = 66
System.out.println(age); //输出66
System.out.println(this.age); //输出88
System.out.println(Outer.this.age); //输出99
}
}
}
---------------------------------------------
//创建内部类需要先创建外部类:
piblic class Test {
public static void main(String[] args) {
Outer.Inner in = new Outer().new Inner();
}
}
2、静态内部类
public class Outer {
private int age;
public static String schoolName;
//静态内部类(可以直接访问外部类的静态成员,但是不能实例成员)
public static class Inner {
public void test(){
System.out.println(schoolName);
//System.out.println(age); //报错
}
}
}
---------------------------------------------
//创建内部类需要先创建外部类:
piblic class Test {
public static void main(String[] args) {
Outer.Inner in = new Outer.Inner();
}
}
3、局部内部类(定义在方法中,代码块中,构造器等执行体中)
4、匿名内部类(无需为该类声明名字,通常作为一个参数传输给一个方法)
public class Test {
public static void main(String[] args) {
//匿名内部类
Animal a = new Animal(){
@Override
public void cry(){
}
}
a.cry();
}
}
//抽象类
abstract class Animal{
public abstract void cry();
}