C# protected修饰符
protected修饰符:
在定义protected方法的类可以访问或者继承定义该方法的类的子类内部可以访问,即如果类A定义了protected方法,则类A可以使用以及继承了A的子类内可以访问;
示例:
public class _20210213_1 { public void Run() { _20210213_1_Animal animal = new _20210213_1_Animal(); animal.Animal_Method1(); // animal.Animal_Protected1(); // 错误,无法访问 _20210213_1_Dog dog = new _20210213_1_Dog(); dog.Animal_Method1(); //dog.Animal_Protected1(); // 错误无法访问 } } public class _20210213_1_Animal { public void Animal_Method1() { // 正确,本类可以访问protected方法 Animal_Protected1(); Console.WriteLine("Animal_Method1"); } protected void Animal_Protected1() { Console.WriteLine("Animal_Protected1"); } } public class _20210213_1_Dog : _20210213_1_Animal { public void Run() { // 正确,在子类内可以访问父类Animal_Protected1方法 Animal_Protected1(); } }
分析:类_20210213_1_Animal定义的Animal_Protected1在类_20210213_1_Animal内部可以使用,在继承_20210213_1_Animal的类_20210213_1_Dog 可以使用Animal_Protected1方法,在这两个类外(比如在类_20210213_1定义的_20210213_1_Animal实例和_20210213_1_Dog 实例就无法访问Animal_Protected1方法)无法使用。