C#面向对象 类的继承

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              */
原文地址:https://www.cnblogs.com/liujianshe1990-/p/5073744.html