什么是脆弱的基类问题?

Sun*_*i86 25 java oop

java中脆弱的基类问题是什么?

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)

  • 但是哪些变化很简单,即标准是什么? (3认同)