zoukankan      html  css  js  c++  java
  • 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,使用时会产生使用空引用异常。
  • 相关阅读:
    redis总结
    java程序启动脚本
    mysql生成百万测试数据脚本
    java分布式锁的实现及在springboot中的应用
    mysql使用总结
    一个java实现代码(服务)编排的思路(未完)
    sentinel自定义统一限流降级处理
    shell学习
    oracle查看被锁的事务进程sql
    Sql查询两个时间段有重叠的记录
  • 原文地址:https://www.cnblogs.com/zjgtlkj/p/3115467.html
Copyright © 2011-2022 走看看