zoukankan      html  css  js  c++  java
  • 类、结构、抽象类、接口区别

    类与结构不同:
    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、接口的使用方便团队协作开发

  • 相关阅读:
    61. 最长不含重复字符的子字符串
    60. 礼物的最大价值 (未理解)
    59. 把数字翻译成字符串
    58. 把数组排成最小的数
    57. 数字序列中某一位的数字 (不懂)
    spring data jpa 官方文档
    idea 编译报错 源发行版 1.8 需要目标发行版 1.8
    idea maven 依赖报错 invalid classes root
    solr
    spring boot 官方文档
  • 原文地址:https://www.cnblogs.com/xiaoweigogo/p/7799936.html
Copyright © 2011-2022 走看看