• C# 继承、重写、base、抽象、密封。C# 接口、转换、比较


    1. 继承:基类的可访问性 必须至少和类的 本身具有相同的可访问性。与C++ 不同,不存在 public private protected 继承。
    2. 多态:virtual 不能和 static abstract override 修饰符同时使用。override 不能和 static abstract virtual 修饰符同时使用,并且重写方法只能用于重写基类的虚方法。  派生子类不能改变基类中声明的非虚方法的实现。多态,类型转换。
    3. 重写:C类中声明了重写方法 F, 已重写了的基方法 通过检查 C 的各个基类来实现。
    4. 使用base:使用 base. 可以访问当前类成员所隐藏的基类成员。访问虚函数时,通过 base 来访问已重写了的基方法。base 构造函数制定。 例如: 访问修饰符 类名(形参):base(实参)。
    5. 抽象类:abstract 。只能表达一种抽象的感念,只为他的派生类提供一个公共接口界面,是不完整的类。不能直接实例化,继承其后,重写抽象方法。
    6. 密封类:sealed 对没有集成必要的类封装,不能被其他的类继承。密封成员:防止被重写。
    7. 静态类:不能实例化 且 只包含静态成员的类 声明为 私有构造函数 的 密封类 ---- 重新定义了这样的类,使用static 修饰符的类 代替之。
    1. 接口:被看作是描述 任何 类的 一组行为。接口可以制定项目中各类的运行协议,可以整合类, 是面向对象编程的核心。1.接口默认为public 的 但是不能用public 修饰。2.接口成员必须是 方法、属性、事件、索引器,3.不能包含 常量、字段、运算符、实例、静态成员。  4.接口只提供签名, 而不提供 定义的成员实现。5.可以实现接口组合机制,
    2. 接口的实现和继承:当某个类中 实现 接口 时,成为接口的实现。  类会继承由其基类 提供的所有接口的实现,可以显示 地 重新实现接口。  
    3. 显示接口的成员:在类中 实现格式:声明的该成员接口名.成员名(){};  可以在一个类 中 实现 多个接口, 则当访问该接口的内容时, 使用 先前类 中实现的 内容来 执行。
    4. 访问接口成员:多接口重名时,进行类型强制转化以区别。    直观隐藏:多重继承中,如果在任意一个路径中被隐藏,那么它 会在经过他的所有路径中隐藏。
    5. 根类 object:Equals()使用于所有类型,可定义静态也可以是虚函数,  ReferenceEquals() 只适用于引用类型。只能是静态形式。 object 的方法可以重写,除  Finalize()和 MemberwiseClone()之外。
    6. 如果实现 Equals()  或者 GetHashCode()的重写,就必须将这两个 方法全部重写,  否则 error。
    7. Finalize():特殊, 不允许 重写 或者 直接调用。但是 C#程序中,每个类的析构函数都是通过重写Finalize()实现的,系统自动实现,非人为。
    8. GetType(): 针对的是对象。 Typeof()运算符 针对的是类型名。
    9. is运算符: 判断。动态检查程序对象运行时的类型 是否和 给定的类型 相兼容。 表达式(B) is  类型(T)。可以存在隐式转换。
    10. as运算符: 转换。不同于显式转换。将某个对象现实地转换为一个指定的引用类型。该运算符从不会发生运行异常。但是转换失败后,对象将为null,使用时会产生使用空引用异常。
  • 相关阅读:
    函数式对象
    PageRank网页排名算法
    文档倒排序索引
    单词共现算法
    MapReduce关系代数运算
    矩阵乘法的MapReduce实现
    对象序列化(二)
    信息流产品和内容推荐算法
    从企业实操的角度谈深度学习(图像方向)的底层逻辑之概念普及
    Python深度学习企业实战之TensorFlow的底层原理及安装
  • 原文地址:https://www.cnblogs.com/zjgtlkj/p/3115467.html
Copyright © 2020-2023  润新知