一、内部类的特性
1、类的名字只能在定义的范围内使用,除非使用有效的全名;
2、Inner class 可以声明为抽象类 ,因此可以被其它的内部类继承,也可以声明为final
的;
3、Inner class 可以声明为static
的,但此时就不能再使用外层封装类的非static
的成员变量;
4、非static
内部类中的成员不能声明为static
的,只有在static
的内部类中才可声明static
成员;
5、Inner 类也可以定义在方法的内部,一般不这么写;
二、编程实战
代码的详细解读,可以参考视频教程
/**
* User: 祁大聪
*/
public class Outer {
private int age;
//普通内部类
public class Inner{
public void doGrow(){
age++;
}
}
//静态的内部类
public static class StaticInner{
private static int height;
public void doGrow(){
//这里没有this
// age++;
}
}
//内部类也可以继承
public abstract class SubInner extends Inner{
}
public void testInner(){
Inner inner = new Inner(); //这里不需要写内部类的全路径
}
public static void main(String[] args) {
Outer.Inner inner = new Outer().new Inner();
}
}