五种访问修饰符:
- public:公开的访问权限,当前类、子类、实例对象都可以访问到
- private:私有的访问权限,只能在当前类内部进行访问使用,子类和实例对象都访问不到
- protected:受保护的访问权限,只能在当前类的内部,以及该类的子类中访问,实例对象访问不到
- internal:只能在当前程序集(项目)中访问,在同一个项目中internal和public的访问权限是一样的
- protected internal:内部保护访问,③+④访问规则结合版
能够修饰类的访问修饰符只有两个:public和internal,其中类的默认访问修饰符是internal
五种访问修饰符都可以修饰类中的成员,类中的成员默认访问修饰符是private(这和C++不同)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace C4_程序设计
{
class A
{
protected int val;
public A(int val = 0)
{
this.val = val;
}
}
class A2: A
{
public A2(int val = 0) : base(val) { }
}
class A3 : A2
{
public A3(int val = 0) : base(val) { }
public void Print()
{
Console.WriteLine(val);
}
}
class 五种访问修饰符
{
static void Main()
{
A3 me = new A3(15);
//Console.WriteLine(me.val); 非法,受保护的访问权限,只能在当前类的内部,以及该类的子类中访问
A you = new A(12);
//Console.WriteLine(you.val); 非法,受保护的访问权限,只能在当前类的内部,以及该类的子类中访问
me.Print(); //正确,输出结果:15
}
}
}