Nar*_*hai 0 java oop interface
class A implements Serializable{
}
class B extends A{
//this also inherits the marker
}
Run Code Online (Sandbox Code Playgroud)
那么有没有办法在课堂上实现/取消标记B?
示例:如果有两个类扩展A名为B和C.但是他们只C想要序列化而不是B.
Java不仅缺少对此的支持:这样的功能将彻底打破其OOP基础.类型多态意味着可以在子类型上应用Liskov的替换原则:您的"特征"将使其不适用.
每个子类型都由它扩展的类型的约定紧密绑定:在每个地方,一个引用超类型,子类型的实例必须能够发生.因此,如果超类型是可序列的,我们不能允许任何子类型.
从不同的角度回答,如果您需要来自A非序列化类型的可序列化类型的功能B,那么将您的设计基于组合而不是继承:让我们B包含一个适当的实例A.
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |