c#笔记(九)

时间:2021-07-12 19:14:47

            构造方法,,是与类名相同,并且无返回值,不加void

            构造方法的主要作用是创建对象并给对象赋初值

            不带有参数的构造方法称为默认构造

            构造方法可以带有参数进行重载, 如果要给对象赋具体的初始值时

            可以在类里面写出带有参数的构造方法并调用

            如果在类里面没有构造方法,当我们创建对象时,系统会自动生成一个默认构造供使用

            如果类里面有带有参数的构造方法,调用默认构造时,必须显示的把默认构造写出来

 

 面向对象三大特性:封装、继承、多态

             封装

            我们在创建对象时,不希望外部人为的来破坏对象所包含的字段的值,此时就需要把数据封装起来

            具体的做法是:把成员字段用private字段修饰,这样外部就无法拿到字段并修改所存储的数据

            同时把私有的字段改成属性,通过属性来修改字段的值,创建对象并初始化对象时

            可以用带有参数的构造方法给字段赋初始值,把字段写成私有后,虽然在外部不能使用,但是在类的内部可以使用、

            即类内部的方法可以调用类里面的私有字段

            继承

            当一个子类继承父类,会把父类里面的成员继承过来,

            父类里面的成员如果用public修饰,称为共有继承,用private修饰称为私有继承

            公有继承的成员在任何地方都能使用

            私有继承过来的成员只能在分类内部使用,在类的额外面不能使用

            protected继承过来的成员只能在父类和子类里面使用,类的外面不能使用

//里氏转换

            SmallDog small = new SmallDog();

            BigDog big = new BigDog();

            stu.WalkDog(big);

            stu.WalkDog(small);

            //在处理数据时,为了使所处理的数据,类型达到统一,

            //此时会把数据的类型统一写成父类的类型,这样就可以吧子类的对象直接赋值给父类

            //里氏转换的第一个原则:把子类对象赋值给父类,但是调用类里面的成员时只能调用父类里面的子类里面的调用不到

            Dog dog = small;

            //里氏转换的第二个原则;把父类的对象转成子类,as