内部类

作者: 阳光丶不错 | 来源:发表于2018-04-26 17:03 被阅读0次
    特点:

    上溯造型的时候,内部类除了对该类可以见,对任何父类和子类都不可见。
    普通类不能被设置为protected何private类型,但是内部类可以。

    分类:

    非静态内部类,匿名内部类,局部内部类,静态内部类。

    非静态内部类:

    对象依赖外部类对象的存在而存在,会持有外部类对象的引用。
    非静态内部类直接持有外部类的对象的引用
    外部类不直接持有非静态内部类的对象的引用

    匿名内部类:

    匿名内部类的方法形参类型为final,匿名内部类中传入的变量与原变量不是同一个引用,是拷贝的变量,为了数据同步就不能够修改原变量,也就不存在修改完不同步的问题了。
    匿名内部类无法声明构造函数。

    局部内部类:

    局部内部类和非静态内部类一样,但是其作用范围在作用域(scope)范围内,在作用域外部无法显式地引用或生成一个局部内部类的实例。
    局部内部类直接持有外部类的对象的引用

    Tips: 这三种内部类不能有任何static数据,包括static内部类,其对象的创建完全依赖外部类。

    静态内部类:

    不依赖外部类对象而存在
    不能引用任何外部类的非static变量和方法

    内部类的继承:

    使用enclosingClassReference.super() ,在继承其他类的内部类的时候,构造器一定要传入一个其外部类的对象才能使用,并在构造器中利用传入的对象调用该对象的构造器,即在构造器中调用instance.super();

    类的继承与内部类的覆盖

    当子类继承父类时,拥有相同命名的内部类,这并不能够覆盖父类的内部类,其生成规则和调用还是根据对象的实际类型。

    相关文章

      网友评论

          本文标题:内部类

          本文链接:https://www.haomeiwen.com/subject/kedmlftx.html