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

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

转载于:https://www.cnblogs.com/xiaoweigogo/p/7799936.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值