第七章:内部类
1、default: 只能在接口内使用
修饰默认方法(在接口中定义一个方法,无需在接口的实现类中实现该方法)
2、默认方法不是抽象方法,必须有方法体{}
3、实现类中的默认方法无需加default
4、实现接口中实现默认方法:接口.super.方法名();
3、在实现多个接口中相同名称的方法时需要用:接口.super.方法名();实现此方法
注:this:当前类的指针,super:父类的指针
4、接口中可以实现静态方法,调用:类名.方法名();
5、子类可以转成父类,父类不能强转成子类
6、内部类:在类的内部定义一个类
7、外部类调用内部类的属性或方法需要先定义对象;
8、内部类调用外部类的属性或方法直接调用即可;
9、内部类初始化语法:
1). 定义外部类对象
2). 外部类名.内部类名 对象名 = 外部类名.new 内部类名();
3). 内部类可以被权限修饰符修饰,可以被static修饰(静态内部类)
4). 内部类中不能定义静态变量
10、被static修饰,为静态内部类。
1). 可以定义静态的变量、方法
2). 可以定义非静态的变量、方法
3). 可以被权限修饰符修饰
4). 初始化:外部类名.内部类名 对象名 = 内部类名
11、局部类:方法里定义的一个类
-
定义普通方法外部无法调用
-
可以使用外部定义的属性和方法,方法内部也可,但必须在类前定义
-
无法在外界访问
-
可以继承和实现(规则与普通类一致)
-
不可以定义静态变量和方法,可以定义静态常量,且只能用在局部
匿名内部类: 位置:方法内,类内 -
语法:父类名 对象名 = new 父类名(){方法体};
-
特点
-
定义普通方法外部无法调用
-
可以使用外部定义的属性和方法,方法内部也可,但必须在类前定义
-
无法在外界访问
-
可以继承和实现(规则与普通类一致)
-
不可以定义静态变量和方法,可以定义静态常量,且只能用在局部
-
12、Lambdab表达式只适用于类有且只有一个方法时可用
13、语法:(参数列表)->{方法体} ,如果方法体仅一行可以省略大括号