访问权限为protected的类成员可被访问的范围是什么?

 我来答
freeeeeewind
推荐于2017-10-05 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1300万
展开全部

protected是访问控制的一种 。在类中被protected修饰的函数或数据成员,只能被该类或其子类的以及其友元函数访问。

特别要注意的是:访问权限为protected的类成员不能被该类的实例对象或其子类的实例对象访问。以下的C#代码演示了这一点

// 父类
public class Father
{
    
   protected int x; 
   public Father()
   {
       // 正确!
       x = 10;
   }
   public void ShowX()
   {
       // 正确!
       Console.Write( "x = {0}", x);
   }
}
// 子类
public class Son : Father
{
   public Son() : base()
   {
      // 正确! 
      x = 100;
   }
   
   public void ShowXSon()
   {
       // 正确!
       Console.Write( "x = {0}", x);
   }
}
class Program
{
    static void Main(string[] args)
    {
        Father f = new Father();
        // f.x = 30; <--错误!!!
        f.ShowX();
        Son s = new Son();
        // s.x = 20; <--错误!!!
        s.ShowXSon();
    }
}
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
匿名用户
2013-11-25
展开全部
除 被本类或者派生类(子类)的成员函数访问外 还有本包内所有类访问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-25
展开全部
本类及其派生类中。也就是说他是祖传的。继承了他就可以访问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-25
展开全部
成员只能被本类或者派生类(子类)的成员函数访问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-25
展开全部
public: 对任何类和成员都公开, 无限制访问(公开的);
protected: 仅仅对该类以及该类的派生类公开(即当前类及子类);
private: 仅仅对该类公开(即当前类私有化);
internal: 只能值包含该类的程序集中访问该类(只是单独的项目,而不是整个解决方案);
protected internal: 只能在本类,派生类或者包含该类的程序集中访问(当前类,子类的程序集).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式