• c#基础总结(2)里氏转换原则、this、as、抽象、实例化、接口、拆箱和装箱、托管代码、sealed


    9.里氏转换原则
    子类可以直接赋值给父类
    Mysub m =new Mysub();
    Mybase mb =m;
    10.this
    this 表当前类的对象(区分重名)
    this 是否写过,系统都会添加,这样可以通过反编译工具查看;
    11.多态
    一个调用,多种实现
    12.as
    子类 z = f as 子类;
    13.抽象类和抽象方法
    抽象方法不需要实现;
    抽象方法必须在抽象类中;
    抽象方法就是为了实现多态的,所以子类必须重写父类中的抽象方法;
    如果子类也是抽象的,就可以不重写;

    抽象类是对一类事物的抽象;
    抽象类中可以存在抽象成员和非抽象成员;非抽象成员:方法、属性(、索引、事件声明);抽象成员就是普通的成员;
    抽象类不能实例化,就是用来被继承的,以实现多态的;
    14.抽象属性
    抽象与自动属性很像,但是本质不同
    -> 自动属性,后台会有一个字段生成,体统会自动的添加对应的方法体
    -> 抽象属性,是因为没有方法体,所以get,set中什么都没有
    结果
    -> 自动属性,get,set共存
    -> 抽象属性是可以有:只读、只写、可读可写之分的
    15.实例成员
    属于实例本身(可以实例多个对象,每个对象都属于各自的对象)
    静态成员:通过类名.成员名的方式使用的(静态成员不需要实例,所以静态成员属于该类的所有对象)
    静态字段赋初值时候只执行一次
    静态属性:只不过加了一个static关键字(Math.Pow(r,2) r的平方)
    啥时候用静态和非静态?
    1) 静态方法中不能调用非静态成员
    2) 每new一个实例成员都会开辟一段内存空间存放数据
    3)静态成员只在一个固定的内存区域
    4) 静态字段有静态构造函数为其赋值
    语法只有一个:
    static 类名()//系统可以自动生成
    {
    //初始化静态字段
    }
    静态构造方法不能被调用
    16.接口
    四个成员:方法、事件、索引、属性;
    接口描述能力的!而抽象类是抽象的事物!
    接口里面的细节,如下:
    1)接口可以多继承(多个父类,也就是多个接口)
    2)继承接口,叫做实现接口;如果实现接口,就必须实现所有方法,除非子类也是抽象类 ,所以在方法前要加上abstract
    3)可以把接口当做零件
    4)成员不能有使用访问修饰符(任何访问修饰符都不可用)
    public interface IIterface//接口属性的定义
    {
    public int num
    {
    get;
    set;
    }
    }
    17.装箱和拆箱
    值类型到引用类型装箱,从箱子里面拿出数据叫拆箱;
    18.托管程序
    dotnet应用程序称为托管的应用程序,由CLR管理的程序,被称为托管程序;
    垃圾回收算法(压缩算法)每一代满了之后回收
    19.密封类(sealed)
    不允许继承的类
    放在可以重写的方法前,不允许下一个子类重写

  • 相关阅读:
    OpenEuler下OpenSSL的安装
    《Unix/Linux系统编程》第四章学习笔记
    缓冲区溢出实验
    2.3.1测试
    鲲鹏服务器测试
    第六章学习笔记(20191213兰毅达)
    第五章学习笔记(20191213兰毅达)
    stat命令的实现-mysate(20191213兰毅达)
    反汇编测试(20191213兰毅达)
    OpenEuler树莓派基础实验
  • 原文地址:https://www.cnblogs.com/LpRightNow/p/2878962.html
Copyright © 2020-2023  润新知