• 面向对象理解随笔


    结构和类是并列的,都是创建对象的模板

    修饰符 Struct 结构名

     1、结构是值类型,类是引用类型

    2、结构不能包含显式的的无参数构造函数,结构成员会自动初始化默认值,不能再声明时赋值初始化

    3、不能有基类(不能Base) 不支持继承

    4、声明了结构类型后,可以使用New 运算符创建构造对象,也可以不使用new。如果不适用New,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用

    面向对象的四个特性:

    封装:不会破坏原有数据,相当于把数据提取出来在相应的类中进行处理执行

    继承:   通过:实现

    抽象:  ?

    多态:通过虚拟重写方法实现   注:基类中未虚拟(virtual)的话 ,新类中相当于是隐藏了而override 用了就只有一个方法this.Fun();
    重新new一个同名方法 还是有两个方法可以用;一个是Base.Fun();一个是this.Fun();

    关于接口

    1、可以由方法、属性、事件、索引器 的任何组合构成,不能包含 常数(const) 、字段、运算符、实例构造函数、析构函数、类型

    也不能包含任何种类的静态成员。接口成员一定是公开的

    2、C#中不支持直接进行多重继承,但是可以通过接口实现多重继承,接口之间也可以进行继承,普通类和抽象类可以继承自接口。一个类可以同时继承一个类和多个接口,但是接口不能继承类

    关于抽象

    1、用于描述共性,不考虑具体的实现,只确定必须具有的行为(即确定抽象方法)

    2、包含抽象方法的类就是抽象类

    在派生类中实现基类的抽象方法,是使用override来重写基类方法

    关于接口、类、和抽象

    抽象类是一个不完全的类,需要通过派生类来完善

    接口只是对类的约束,仅仅承诺了类能够调用的方法

    一个类一次可以实现若干个接口,但一个类只能继承一个基类

    抽象类只需派生类实现它的抽象方法,接口要求必须实现它的所有成员

    实际编程中,接口的使用要比抽象类广泛的多

    关于密封类

    不能当作基类的类,从而保证了密封类的密封性和安全性(sealed实现)  实际使用非常少,单纯为了保证安全性

  • 相关阅读:
    网站安全处理记录
    C#图片截取(1.按照百分比压缩,2.制定大小压缩)、压缩
    reportviewer导出格式控制
    NPOI 读写excel
    asp.net防止刷新时重复提交
    VS Code MySql扩展 最后完全免费版本 4.5.12
    jmeter中HTTP Cookie Manager
    切换webview报错Failed to start Chromedriver session: Failed to get sockets matching: @weblayer_devtools_remote_.*4738
    在指定目录下面带环境变量运行jmeter
    fidder打断点
  • 原文地址:https://www.cnblogs.com/ck235/p/4839857.html
Copyright © 2020-2023  润新知