zoukankan      html  css  js  c++  java
  • Visual C#核心编程之继承

    1、在.NET中,继承与语言无关,用一种托管语言编写的类可以继承用另一种托管语言编写的类
      跨语言继承必须保证基类和派生类都遵循公共语言规范(CLS)
    2、扩展方法的第一个参数必须为this,后面跟着目标类型,该类型规定了扩展方法可以在哪里应用
      如果实例方法与扩展方法具有相同的签名,则实例方法被调用
      如果两个扩展方法具有相同的签名,则其中一个扩展方法必须作为正常的静态方法被调用
      扩展方法所属的静态类必须在作用域内,否则,该扩展方法不能被调用
    3、对于虚方法,编译器喜欢调用底层的派生方法
    4、基类的构造函数和析构函数不被派生类继承。对于派生类对象,默认的调用基类的默认构造函数来初始化基类的状态。如果基类没有默认构造函数,除非派生类调用基类的一个有参构造函数,否则会发生编译错误
    5、接口与抽象类的比较
      抽象类可以包含一些实现,而接口没有完全实现
      抽象类可以继承其他接口和类,而接口只能继承其他接口
      抽象类可以包含字段,接口没有状态
      抽象类有构造函数和析构函数,接口两个都没有
      接口可以被结构继承,抽象类不能被结构继承
    6、实现了一个接口的派生类的子孙不能强制转换为该接口类型,只有直接实现一个接口的类型才能强制转换为该接口类型。然而,该类的子孙可以通过父类强制转换为该接口的类型
      显式实现的接口成员在子孙类型中不能被重写
    7、多态性的两大好处是晚期绑定和可扩展性
    8、多态性有以下三个因素
      相关的类
      公共的方法
      不同的行为
    9、接口的多态性
    10、基类或接口可用作函数参数或返回值,可以分别在被调函数和调用函数中提供多态行为。使用基类或接口作为参数或返回值的理由如下
      概括了函数调用或返回值。函数参数或返回其可以使用不同的但是相关的类型
      具体的参数或返回类型在编译时可能不知道。基引用支持晚期绑定、类型是在运行时选择的(多态性)
      返回基类或接口限制了对对象的访问。这对于希望隐藏一个公共接口的某个部分的类库特别有用
    11、

  • 相关阅读:
    suse linux 下MYSQL 修改默认字符集
    检查oracle表空间使用情况
    SQL递归查询(SqlServer/ORACLE递归查询)[语法差异分析]
    ORA12519错误解决方案
    全表行转列——动态SQL
    MYSQL 远程连接错误ERROR 2013 (HY000): Lost connection to MySQL server at
    MYSQL根据字段名查询所属表
    ORA12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程错误解决方案
    suse linux 下取消mysql大小写敏感
    ORACLE根据字段名字查询所属表
  • 原文地址:https://www.cnblogs.com/changweihua/p/2200144.html
Copyright © 2011-2022 走看看