• 目录

内部类特性

阅读量: 419 编辑

内部类特性

一、内部类的特性

  • 类的名字只能在定义的范围内使用,除非使用有效的全名

  • Inner class 可以声明为抽象类 ,因此可以被其它的内部类继承,也可以声明为final

  • Inner class 可以声明为 static 的,但此时就不能再使用外层封装类的 非static 的成员变量

  • 非static 的内部类中的成员不能声明为 static 的,只有在 static 的内部类中才可声明 static 成员

  • Inner 类也可以定义在方法的内部,一般不这么写

二、代码实战

代码的详细解读,可以参考视频教程

package com.qicong.gj.c17;

/**
 * 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();
    }
    
}

  • 目录