C# 基础知识 protected 关键字
2014-09-02 17:46
190 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class A
{
protected int x = 123;
internal protected int y = 123;
void Test()
{
A a = new A();
B b = new B();
//a.x //ok
//b.x //ok
//a.y //ok
//b.y //ok
}
}
public class B : A
{
void Test()
{
A a = new A();
B b = new B();
//base.x ok
//base.y ok
//a.x = 10; erro
//b.x = 10; //ok
//a.y; ok
//b.y; ok
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
//a.x = 10; erro
//b.x = 10; erro
//a.y; ok
//b.y; ok
}
}
}
protected 保护访问。只限于本类和子类内部访问;实例不能访问。
需要注意:实例不能访问指的是其他类中。如果是在父类或者子类中的实例当然是可以访问的。
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class A
{
protected int x = 123;
internal protected int y = 123;
void Test()
{
A a = new A();
B b = new B();
//a.x //ok
//b.x //ok
//a.y //ok
//b.y //ok
}
}
public class B : A
{
void Test()
{
A a = new A();
B b = new B();
//base.x ok
//base.y ok
//a.x = 10; erro
//b.x = 10; //ok
//a.y; ok
//b.y; ok
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
//a.x = 10; erro
//b.x = 10; erro
//a.y; ok
//b.y; ok
}
}
}
protected 保护访问。只限于本类和子类内部访问;实例不能访问。
需要注意:实例不能访问指的是其他类中。如果是在父类或者子类中的实例当然是可以访问的。
相关文章推荐
- [C#基础知识]之private、protected、public和internal的区别
- C#基础知识系列八(const和readonly关键字)
- [C#基础知识] ReadOnly关键字修饰的变量可以修改,只是不能重新分配
- C#基础知识之this关键字介绍
- C#基础知识系列八(const和readonly关键字)
- C#基础知识之new关键字介绍
- C#基础知识一之base关键字
- C#基础知识(六)yield 关键字
- C#基础知识系列八(const和readonly关键字)
- [C#基础知识] ReadOnly关键字修饰的变量可以修改,只是不能重新分配
- C# 基础小知识之yield 关键字
- C#基础知识之this关键字介绍
- C#基础知识五之abstract virtual关键字
- C# 基础小知识之yield 关键字 语法糖
- C#基础知识C#中的类是利用命名空间组织起来的。命名空间提供了一种从逻辑上组织类的方式,防止命名冲突。 命名空间声明 用namespace 关键字用于声明一个命名空间。此命名空间范围允
- 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)
- C#基础知识七之const和readonly关键字
- C#基础知识三之new关键字
- 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)