JAVA-内部类和匿名内部类
参考文献
https://blog.csdn.net/m0_73311735/article/details/127702688
https://blog.csdn.net/weixin_45861283/article/details/119344772
1.内部类
定义:将一个类 A 定义在另一个类 B 里面,里面的那个类 A 就称为内部类,B 则称为外部类。
特点:
(1)内部类可以直接访问外部类的成员,包括私有成员外部类要访问内部类的成员,必须要建立内部类的对象。
(2)访问格式为:
外部类名.内部类名 对象名 = new 外部类().new 内部类()
(3)内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class 文件,但是前面冠以外部类的类名和符号。
2.匿名内部类
匿名内部类 :是内部类的简化写法。
它的本质是一个带具体实现的父类或者父接口的 匿名的 子类对象。在开发过程中,最常用到的内部类就是匿名内部类了。
目的是为了实现接口并且调用接口内部的方法
以接口举例,FlyAble是个接口:
public class InnerDemo {
public static void main(String[] args) {
/**
1.等号右边:是匿名内部类,定义并创建该接口的子类对象
2.等号左边:是多态赋值,接口类型引用指向子类对象
*/
FlyAble f = new FlyAble(){
public void fly() {
System.out.println("芜湖,起飞!!🕊");
}
};
//调用 fly方法,执行重写后的方法
f.fly();
}
}