image.png/私有的是:同类可访
//默认的是:同类可访,同包可访
//受保扩的:同类可访,同包可访,不同包的[子类]可访
//公共的:同类可访,同包可访,不同包的[子类]可访,不同包中的无关类可访

final 修饰变量
1. 局部变量——基本类型 基本类型的局部变量,被final修饰后,只能赋值一次,不能再更改
2.引用类型的局部变量,被final修饰后,只能指向一个对象,地址不能再更改。但是不影响对象内部的成员变量值的 修改

内部类

class 外部类{
class 内部类{
}
}

访问特点
内部类可以直接访问外部类的成员,包括私有成员。
外部类要访问内部类的成员,必须要建立内部类的对象。
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();

匿名内部类 :是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象。 开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作,
1. 定义子类
2. 重写接口中的方法
3. 创建子类对象
4. 调用重写后的方法

匿名内部类必须继承一个父类或者实现一个父接口。

default 只能写在接口 扩展方法只能在接口中使用