我不明白 protected 和 private 成员或方法之间的区别,因为我认为它们都可以将成员或函数隐藏起来,以防止外部类访问。
protected 和 private 关键字的区别是什么?
private
- 只能在定义它们的类内部被访问。
protected
- 可以在定义它们的类和继承自该类的其他类中被访问。
private
表示只有类内部可以访问。
protected
表示类内部和子类都可以访问。
区别在于谁可以访问这些函数。
私有
= 只有同一类的成员可以访问该函数。
受保护
= 与私有相同,但派生类也可以访问。
私有成员只能被该类成员和其友元使用;受保护成员可以被其他类继承,并且可以被该类成员和友元使用。
私有方法通常对类实例可见(内部实现),受保护的方法对子类和同一包中的类可见(继承和受限使用)。