不满足编译器会报错:
1. 子类型可以增加方法,但是不能删除
2. 子类型需要实现抽象类型中的所有未实现方法
3. 子类型重写的方法必须使用同样类型的参数或者符合反协变的参数
4. 子类型中重写的方法不能抛出额外的异常
5. 子类型中重写的方法必须有相同或子类型的返回值或者符合协变的参数
更强的规约:
1. 更强的不变量
2. 更弱的前置条件
3. 更强的后置条件
协变:返回值类型不变或者变得更具体,异常的类型也是如此
反协变:参数类型要相反的变化,要不变或者越来越抽象
不满足编译器会报错:
1. 子类型可以增加方法,但是不能删除
2. 子类型需要实现抽象类型中的所有未实现方法
3. 子类型重写的方法必须使用同样类型的参数或者符合反协变的参数
4. 子类型中重写的方法不能抛出额外的异常
5. 子类型中重写的方法必须有相同或子类型的返回值或者符合协变的参数
更强的规约:
1. 更强的不变量
2. 更弱的前置条件
3. 更强的后置条件
协变:返回值类型不变或者变得更具体,异常的类型也是如此
反协变:参数类型要相反的变化,要不变或者越来越抽象