百姓大小事,一呼百应!

百姓网 | 百姓知道

升学留学

何时使用 Protected 继承?

最常用的是public和private继承,那么protected继承应该运用在什么情形下,表达什么样的关系呢? 我这里问的不是访问控制,是继承方式。

2 个回答

  • 魔耳 | 2017-07-11 12:52:53

    protected应该是用在子类实现父类的方法或者方法中使用,如果用public的,别的类还是可以使用到这个父类的方法或者成员,当使用protected的时候,只有子类能访问了,其他的类就访问不了了。

    本问答由魔耳提供

  • 魔耳 | 2017-07-11 12:44:09

    在不考虑访问权限关键字的情况下,继承就是“is-a”关系,所以 “B继承A” 表示的就是 “B是一个A”

    加上访问关键字就是在继承的基础上增加访问限制:
    public:所有人都知道 “B是一个A”,B对外界提供了A提供的所有方法
    protected:只有继承B的人才知道 “B是一个A”,除了继承B的人,其他人无法通过B调用A提供的方法
    private:只有B自己知道 “B是一个A”,外界无法通过B调用A提供的方法


    一个形象一点的比喻,A为普通汽车,B为无人汽车,则:
    public:无人汽车在普通汽车的基础上增加了自动驾驶功能,同时用户也能通过方向盘手动驾驶
    protected:用户只能使用无人汽车的自动驾驶功能,不能手动控制方向盘,同时无人汽车保留了控制方向盘的接口,只对以后升级版的无人车开放
    private:无人汽车完全移除了手动控制方向盘的功能,只能使用自动驾驶

    本问答由魔耳提供

* 本站部分内容来源自网络,仅作分享之用,侵删。