C#访问权限修饰符:public、internal、protected、private、protected internal

【概念】访问权限修饰符:可以用来修饰类、字段、属性和方法。用来描述被修饰的内容可访问的范围,访问权限修饰符有public、internal、protected、private、protected internal;常用的有public、private;

权限从小到大依次如下:
private:私有的权限,可以用来修饰字段、属性和方法。只能在当前类中访问;字段、属性和方法的默认访问权限就是private。
protected:可以用来修饰字段、属性和方法。可以在当前类中访问,也可以在子类(包含子类的子类)及跨项目继承的子类中访问。
internal:可以用来修饰类、字段、属性和方法。在整个项目中生效。类的默认的访问权限是internal;
protected internal:可以用来修饰字段、属性和方法,在当前项目中生效,在跨项目的子类中生效。
public:可以用来修饰类、字段、属性和方法,在整个解决方案生效。

【案例1】父类中的private修饰的字段,子类能访问到吗?答案:不能。

class Dog
{
    private int age;
    
    void Show()
    {
        Console.WriteLine(age);
    }
}

class HaShiQi : Dog
{
    void Display()
    {
    //此处age会报错,"Dog.age"不可访问,因为它具有一定的保护级别
        Console.WriteLine(age);
    }
}

【案例2】父类中的protected修饰的字段,跨类能访问到吗?答案:不能。

class Dog
{
    protected int age;
    void Show()
    {
        Console.WriteLine(age);
    }
}

class HaShiQi : Dog
{
    void Display()
    {
        Console.WriteLine(age);
    }
}

class Cat
{
    void BeatDog(Dog d)
    {
        //此处age会报错,"Dog.age"不可访问,因为它具有一定的保护级别
        Console.WriteLine(d.age);
    }
}

【案例3】父类中的protected修饰的字段,子类的子类能访问到吗?答案:能。

class Dog
{
    protected int age;
    void Show()
    {
        Console.WriteLine(age);
    }
}

class HaShiQi : Dog
{
    void Display()
    {
        Console.WriteLine(age);
    }
}

class xiaoha : HaShiQi
{
    void Test()
    {
        Console.WriteLine(age);
    }
}

【注意事项1】父类和子类的修饰符中,父类访问权限一定要大于子类。否则会提示如图错误信息。
在这里插入图片描述
【注意事项2】在public权限的类中,如果某个字段或者某个方法中使用到了非public权限的类型,程序会报错,要将类型该为一致的权限修饰。

class Animal { }

class Point { }

public class Circle
{
    //此处center、SetCenter会报错:可访问性不一致,字段类型"Point"低于.......
    public Point center;
    public void SetCenter(Point c)
    {

    }
}
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值