java中的内部类和接口加在一起,实现多继承。
如图:
内部类分为: 局部内部类、匿名内部类、成员内部类、静态内部类
局部内部类、匿名内部类 定义在外部类的局部位置。
成员内部类、静态内部类 定义在外部类的成员位置。
1)局部内部类
细节:
1.局部内部类可以访问外部类的所有成员,包括private。
2.局部内部类不能有访问修饰符,因为其本身是一个局部变量,局部变量不能使用访问修饰符。
但可以使用final修饰。
3.局部内部类只能在外部类的代码块和方法中使用。
4.局部内部类有类名。
5.外部类访问局部内部类成员需要创建对象再访问,局部内部类访问外部类则可以直接访问。
2)匿名内部类
细节:
1.基本语法
new 类或接口( 参数列表){
类体;
}
2.定义在外部类的局部位置(方法和代码块),没有自己的类名。
3.本质是一个类,同时还是一个对象。
4.可以直接访问外部类的所有成员。
5.不能添加访问修饰符。
6.不能有构造方法。
3)成员内部类
1.可以添加访问修饰符,因为它本质就是一个成员。
2.可以直接访问外部类的所有的成员,包含私有的。
3.作用域:
整个类体,在外部类的成员方法中创建成员内部类对象,再调用方法。
4.成员内部类直接访问外部类成员。
外部类访问成员内部类先创建对象再访问。
其他类访问外部类的内部类:
一、外部类名.new.内部类名。
二、在外部类中编写一个方法调用内部类,再调用这个方法。
5)静态内部类
细节:
1.不能访问非静态的外部类成员。
2.可以任意添加访问修饰符,因为它的地位是一个成员。
3.同一个成员,是整个类体。
4.静态内部类访问外部类成员直接访问。
5.外部类访问静态内部类成员需要先创建对象再调用。
6.其他类访问外部类的静态内部类:
一、因为为static,直接调用。
二、在外部类中编写一个方法调用静态内部类,其他类调用方法。