zoukankan      html  css  js  c++  java
  • c#笔记(九)——面向对象

    构造方法
                构造方法,是与类名相同,并且无返回值,不加void
                构造方法的主要作用是创建对象并给对象赋初值
                不带有参数的构造方法称为默认构造
                构造方法可以带有参数进行重载, 如果要给对象赋具体的初始值时
                可以在类里面写出带有参数的构造方法并调用
                如果在类里面没有构造方法,当我们创建对象时,系统会自动生成一个默认构造供使用
                如果类里面有带有参数的构造方法,调用默认构造时,必须显示的把默认构造写出来
     
     面向对象三大特性:封装、继承、多态
                 封装
                我们在创建对象时,不希望外部人为的来破坏对象所包含的字段的值,此时就需要把数据封装起来
                具体的做法是:把成员字段用private字段修饰,这样外部就无法拿到字段并修改所存储的数据
                同时把私有的字段改成属性,通过属性来修改字段的值,创建对象并初始化对象时
                可以用带有参数的构造方法给字段赋初始值,把字段写成私有后,虽然在外部不能使用,但是在类的内部可以使用、
                即类内部的方法可以调用类里面的私有字段
                继承
                当一个子类继承父类,会把父类里面的成员继承过来,
                父类里面的成员如果用public修饰,称为共有继承,用private修饰称为私有继承
                公有继承的成员在任何地方都能使用
                私有继承过来的成员只能在分类内部使用,在类的额外面不能使用
                protected继承过来的成员只能在父类和子类里面使用,类的外面不能使用
    //里氏转换
                SmallDog small = new SmallDog();
                BigDog big = new BigDog();
                stu.WalkDog(big);
                stu.WalkDog(small);
                //在处理数据时,为了使所处理的数据,类型达到统一,
                //此时会把数据的类型统一写成父类的类型,这样就可以吧子类的对象直接赋值给父类
                //里氏转换的第一个原则:把子类对象赋值给父类,但是调用类里面的成员时只能调用父类里面的子类里面的调用不到
                Dog dog = small;
                //里氏转换的第二个原则;把父类的对象转成子类,as
                BigDog s =dog as BigDog;
                if (s!=null )
                {
                    s.BigDogBark();
                }
    //把值类型转换成引用类型的过程称为装箱
                object obj = a;
                Console.WriteLine(obj);
                //把引用类型转换成值类型称为拆箱
                int c=(int )obj;
    多态
    virtual override
  • 相关阅读:
    68
    56
    Django manager 命令笔记
    Django 执行 manage 命令方式
    Django 连接 Mysql (8.0.16) 失败
    Python django 安装 mysqlclient 失败
    H.264 SODB RBSP EBSP的区别
    FFmpeg—— Bitstream Filters 作用
    MySQL 远程连接问题 (Windows Server)
    MySQL 笔记
  • 原文地址:https://www.cnblogs.com/ningyongbin/p/5922222.html
Copyright © 2011-2022 走看看