密封类(Sealed Classes)
一、作用
限制类的继承实现, 只允许指定的子类去继承
二、关键字
sealed 、permits、non-sealed
三、使用
使用时,密封类的父子类 必须 是同包
写法 一
父类定义
sealed 声明密封类
sealed class 父类名 permits 子类名A, 子类名B, 子类名C { //逻辑代码 }
子类定义
final 修饰被无法继承
final class 子类名A extends 父类名 { //逻辑代码 }
non-sealed 修饰可被子类继承
non-sealed class 子类名B extends 父类名 { //逻辑代码 }
sealed 子类也可以是密封类
sealed class 子类名C extends 父类名 { //逻辑代码 }
final class 子类名A extends 父类名 { //逻辑代码 }
non-sealed 修饰可被子类继承
non-sealed class 子类名B extends 父类名 { //逻辑代码 }
sealed 子类也可以是密封类
sealed class 子类名C extends 父类名 { //逻辑代码 }
写法 二
sealed class 父类名{
public final class 子类名A extends 父类名 { //逻辑代码 }
public non-sealed class 子类名B extends 父类名 { //逻辑代码 }
public sealed class 子类名C extends 父类名 { //逻辑代码 }
}