首页 > 代码库 > 1212面向对象--引用类型与值类型、命名空间与类库、继承(父类与子类)

1212面向对象--引用类型与值类型、命名空间与类库、继承(父类与子类)

五、引用类型与值类型

.NET将变量的类型分为值类型引用类型。例如int和float之类的变量属于值类型,而“类“类型的变量属于引用类型

值类型与引用类型的变量在使用上是有区别的。

值类型的变量在一定义之后就可以马上使用。

引用类型的变量定义之后,还必须用new关键字创建对象后才可以使用。

如上图,创建两个新的对象时,直接比较两个对象是否相等,返回的bool值为false.因为两个对象都是新开辟的一个空间变量,彼此没有任何关系,所有是不相等的。

如图2:1)创建的第一个新的对象ss1,给ss1中的属性分别赋值;再创建第二个新的对象ss2,直接比较ss1和ss2,仍然不相等;

          2)但是,当执行”ss2=ss1“时,把对象ss2指向ss1,就把ss1的值赋给ss2,这时候比较时,返回的是true;

          3)当打印ss2.Name,输出就是ss1.Name的值;

          4)再次给ss2.Name赋值时,输出是ss1.Name的值;

ss1=ss2后,两个变量表示的是同一个对象,好比是一个人有两个“名字”

 六、命名空间与类库

1、命名空间:又称程序集,相当于一个文件夹,里面包含好多的类(文件)。

2、类库:许许多多的类组合在一起,就相当于好多文件组成一个压缩包。

七、继承

在构成继承关系的两个类中,一个被称为父类或基类,另一个被称为子类。如下图:

【重点理解】:1)子类包含弗雷德所有属性和方法;

                    2)所有的子类都可以直接转换成父类类型;

                    3)当父类类型变量里面存的是某个子类的对象的时候,才能转换成那个子类类型。

举例说明:

【例1】:1)创建一个Ren类的对象,其字段属性包含Name,Sex;(运用封装字段)方法为“会说话!”

            2)创建一个Men类的对象作为Ren类的子类,其字段属性继承Ren类的属性Name,Sex,方法为“会赚钱”;

   class Man:ren//Man代表ren的子类
    {

        //方法为“会赚钱”
        public void ZhuanQian()
        {
            Console.WriteLine("赚钱养家");
        }
    }

3)在主函数中,如何体现父类与子类的继承关系;通过强制转换,子类对象转换为父类,然后再从父类转换成子类时的属性不会缺失(必须在某个子类存在其父类当中的前提下);

【注意】:一个父类可以包含多个子类;但一个子类只能对应一个父类;父类与子类可以理解为一对多的关系。只有子类转化为父类的,才可以从父类转化成子类!

 

1212面向对象--引用类型与值类型、命名空间与类库、继承(父类与子类)