• 类、结构、抽象类、接口区别


    类与结构不同:
    1、类是引用类型,分配在内存的堆上,结构是值类型,分配在内存的栈上
    2、类可以被继承,结构不能被继承
    3、类可以有默认的构造函数,结构不可以有默认构造函数
    4、类可以添加无参的构造函数,结构必须带参
    5、类中可以给字段赋值,引用传递,结构中给字段赋值是错误的,复制传递,Int32,boolean等都属于结构体
    相同点:都可以包含字段,方法,都可以实现接口!

    什么时候使用类?什么时候使用结构?
    是否需要使用面向对象的特性:封装、继承、多态。,如果需要在某些情况下被继承或者使用多态等特性则只能用类
    当类型中(类或结构)的成员比较多的时候,则考虑使用类
    不具有面向对象的特征,通常用来封装小型数据考虑使用结构

    类与接口不同:
    1、接口不能实例化,类可以被实例化
    2、接口不包含方法的实现,类可以包含
    3、接口可以多继承,类只能单继承
    相同点:
    1、都可以从多个接口继承
    2、都可以包含事件、索引器、方法和属性
    3、继承接口的任何非抽象类都必须实现接口的所有成员

    抽象类与接口异同:
    接口用于规范,抽象类用于共性。
    1、抽象类不能实现多继承,接口支持多继承
    2、抽象类有构造方法,接口没有构造方法
    3、抽象类可以有方法的实现,也可以指定方法的访问修饰符,但接口中不能定义字段(因为字段属于实现层面的东西,只有存取值的时候才会用到字段,所以不能定义字段)和包含实现的方法,不能指定方法的访问修饰符
    4、抽象类只能作用于引用类型,接口可以作用于值类型和引用类型;例如Struct可以继承接口,但不能继承类
    相同点:
    1、都不能被实例化
    2、都通过继承实现其抽象方法
    3、派生类必须实现未实现的方法
    4、都可以使系统增强可维护性与可扩展性

    什么时候使用抽象类,什么时候使用接口:
    抽象类主要用于关系密切的对象;适用于同一系列,并且有需要继承的成员
    而接口适合为不相关的类提供通用功能,适用于不同系列的类具有相同的动作(行为、动作、方法)
    对于不是相同的系列,但具有相同的行为,这个就考虑使用接口

    • 接口是什么?接口好处是什么?什么是“显示实现接口”?显示实现有什么意义?
    1、接口是一种规范和标准,屏蔽了实现的细节,它不实现任何的方法,只是告诉实现它的类要实现哪些功能,子类也可以有自己的方法。接口是一种引用类型,在接口中可以声明方法、属性、索引器和事件(本质都是方法),但不可以定义字段和包含实现的方法,使用interface去定义某些特定的功能,为的是不要将代码写死在自定义类里,以便在系统开发,事后维护,功能扩充上更有扩展性
    2、易于维护,功能易于扩展
    3、实现接口中的方法时用:接口名.方法名()
    4、接口是其他类型为确保它们支持某些操作而实现的引用类型,接口从不直接创建而且没有实际的表现形式,其他类型必须转换为接口类型,一个接口定义一个协定,实现接口的类或结构必须遵守其协定。

    接口的作用:
    1、接口是对继承单根性的扩展
    2、接口是一种规范和标准
    3、接口屏蔽了实现的细节
    4、接口的使用方便团队协作开发

  • 相关阅读:
    借助NetFlow Analyzer的IPAM SPM插件,轻松实现IP和交换机端口管理
    补丁日微软修复了129个漏洞,学习补丁管理最佳实践
    如何通过组策略映射驱动器?
    如何预防磁盘使用率过高?
    ITIL是什么意思?
    Applications Manager—打造最佳云监控策略
    Microsoft 365独家安全解决方案
    怎么让Chrome支持小于12px 的文字?
    vue Router的使用
    vue项目中随机生成验证码
  • 原文地址:https://www.cnblogs.com/xiaoweigogo/p/7799936.html
Copyright © 2020-2023  润新知