受保护的和私有的有什么区别?

48

我不明白 protected 和 private 成员或方法之间的区别,因为我认为它们都可以将成员或函数隐藏起来,以防止外部类访问。

protected 和 private 关键字的区别是什么?

5个回答

88

private - 只能在定义它们的类内部被访问。

protected - 可以在定义它们的类和继承自该类的其他类中被访问。


16

private 表示只有类内部可以访问。

protected 表示类内部和子类都可以访问。


9

区别在于谁可以访问这些函数。

  • 私有 = 只有同一类的成员可以访问该函数。

  • 受保护 = 与私有相同,但派生类也可以访问。


6

私有成员只能被该类成员和其友元使用;受保护成员可以被其他类继承,并且可以被该类成员和友元使用。


5

私有方法通常对类实例可见(内部实现),受保护的方法对子类和同一包中的类可见(继承和受限使用)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接