1、类的访问权限:
public;跨程序集,命名空间,必须被using引用;
internal:默认当前命名空间;
2、类成员的访问权限:
private:私有的,只能当前类;
protecte:受保护的,当前类以及子类
public:公共的,跨程序集;
internal:当前命名空间,但是随着类的范围而定,当类为public时,那么internal
成员也可以在其他的命名空间访问
3、如果某个类没有任何可访问性关键字在它的前面,则它就是默认internal
但是,在类中,如果省略类成员的可访问性关键字,默认为private。
1 class Animal 2 { 3 public string name; 4 5 public void huidong() 6 { 7 Console.WriteLine("动物会动"); 8 } 9 } 10 class cat : Animal 11 { 12 public string shangshu; 13 14 public void hanshu() 15 { 16 Console.WriteLine("猫会上树"); 17 }//如果父类中有protected成员,可以在子类中直接访问 18 } 19 20 21 22 cat c = new cat(); 23 c.name = "猫";//子类继承父类,一个子类只能继承一个父类 24 //当子类继承父类之后,就拥有了父类的公共方法和属性 25 c.shangshu="上树"; 26 c.huidong(); 27 c.hanshu(); 28 Animal a = c;//子类对象可以直接转换成父类对象 29 30 cat c1 = (cat)a;//但是父类不能直接转换成子类对象,必须显示转换 31 //当父类对象是有子类对象转换来的时候,父类对象不拥有 子类的属性和方法 32 //例;父类 a 是由子类 c 转换来的,a 不拥有c的属性 33 34 c1.name = "老猫";//只有子类对象转换来的父类对象,才能转换为子类对象 35 Console.WriteLine(c.name); 36 Console.ReadLine(); 37 /*对象的等号赋值: 38 Animal a = c; cat c1 = (cat)a; c1.name = "老猫"; 39 以类cat创建一个对象c(包含cat 的属性和方法),a=c代表对象a和对象c具有相同的指向,但是由于父类 40 不能拥有子类的属性和方法,所以a只能拥有父类的属性和方法; 41 当由子类转换来的父类转换回子类时,对象c1和对象a具有相同的指向 42 */