内部类

内部类可以直接访问外部内的字段、方法,但外部类不能直接访问内部类的属性、方法。

普通内部类(非静态内部类)
1、获取外部类对象的引用,可以用Outter.this获取
2、创建内部类对象:Outter.Inner inner = new Outter().new Inner();/inner = outter.new Inner();
3、普通内部类不能包含static修饰的字段、方法及静态初始化块
注:创建普通内部类对象一定有外部类对象存在,并且内部类对象与外部类对象之间有某种联系。

 

嵌套类(静态内部类):如果不需要内部类对象与其外围类对象之间有联系,那么可以将内部类声明为static,
这通常称为嵌套类。普通内部类对象隐式地保存了一个引用,指向创建它的外部类对象。当内部类是static时,就不是这样了。

1、静态内部类创建:Outter.Inner inner = new Outter.Inner();
2、要创建嵌套类的对象,并不需要外围类的对象。
3、不能从嵌套类对象中访问非静态的外围类对象。
注:创建嵌套类对象不需要通过外部类对象。
普通内部类不能包含static修饰的字段、方法,但是嵌套类可以有

接口中可以包含有嵌套类,接口中的类都自动是public和static修饰的。
内部类的出现似乎解决了类不能多重继承问题(多个内部类继承抽象类)

posted on 2020-11-10 21:03  landiss  阅读(58)  评论(0编辑  收藏  举报