- 冒号空间 - https://blog.zhenghui.org -

Reply To: 关于继承

现实中子类采用父类protected域成员的情形的确有不少,但这种设计一般是不提倡的。这是因为相比方法成员,域成员的可变性更大,包括名称、用法、访问控制等等,并且也不像前者那样可以被overriden。此外,其用法的粒度也大于前者的粒度。总之,后者的抽象性和规范性均不如前者。这也是为什么接口都以方法成员而非域成员的形式出现的原因。

话说回来,一旦父类已经采用了protected域成员,也不是绝对不能在子类中引用的。但要注意两点:一、如果不通过域成员也能达到目的的,则尽量不用,除非涉及到严重的性能问题;二、如果不得不用,一定要弄清域成员的详细规范并严格遵循之。(如果父类有protected域成员却无相应的规范文档,这种父类不要也罢)


Share