日历

November 2020
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Reply To: 关于继承

Home Forums 《冒号课堂》讨论区 关于继承 Reply To: 关于继承

#1365
hui
Keymaster

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

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

 请您评分1星(很差)2星(不行)3星(一般)4星(不错)5星(很棒)