Col*_*ard 27
脆弱的基类是继承的常见问题,它适用于Java和支持继承的任何其他语言.
简而言之,基类是您继承的类,它通常称为脆弱类,因为对此类的更改可能会在从其继承的类中产生意外结果.
减轻这种情况的方法很少; 但是在使用继承时没有直接的方法可以完全避免它.您可以通过final在Java中标记类声明来阻止从类继承的其他类.
避免这些问题中最严重的最佳做法是将所有类标记为final,除非您特意打算从它们继承.对于那些打算继承的人来说,就像设计一个API一样设计它们:隐藏所有的实现细节; 严格对待你所发出的内容并注意你所接受的内容,并详细记录该类的预期行为.
sta*_*ker 13
当对其进行的更改破坏派生类时,基类称为fragile.
class Base{
protected int x;
protected void m(){
x++;
}
protected void n(){
x++; // <- defect
m();
}
}
class Sub extends Base{
protected void m(){
n();
}
}
Run Code Online (Sandbox Code Playgroud)