• 接口与抽象类 (interface and abstract class)



    虽然在刚接触C#的时候就接触了这两个概念, 这也是经典面试题之一.
    今天坤坤在每日一题里出了个关于接口的问题, 我还是不会.
    那就再次学习下接口, 顺便学习下抽象类, 加深理解.

    接口:
    1. 接口是引用类型
    2. 不能被实例化
    3. 只能包含实现的方法声明, 不能包含实现其成员的任何代码, 实现过程必须在实现接口的类中实现.
    4. 一个类可以支持多个接口, 多个类也可以支持相同的接口.
    5. 派生类必须实现接口的所有成员.
    6. 接口中的所有成员默认为public, 接口中不能有private修饰符.
    7. 接口中可以包含: 方法, 属性, 索引器, 事件
    8. 接口中不能包含: 常量, 字段(域), 构造函数, 析构函数, 静态成员.

    抽象类:
    1. 抽象方法只作声明, 而不包含实现.
    2. 抽象类不能被实例化. 除此以外, 具有类的其他特征.
    3. 抽象类可以包含非抽象的属性和方法, 但是抽象方法必须放在抽象类中.
    4. 派生类必须覆盖基类的抽象方法
    5. 抽象类可以派生自另一个抽象类.(这个不太明白)

    抽象类和接口的相同点:
    1. 都可以被继承
    2. 都不能被实例化
    3. 都可以包含方法声明
    4. 派生类必须实现未实现的方法.

    抽象类和接口的区别:
    1. 抽象类是一个不完整的类, 需要进一步细化, 而接口只是一个行为的规范或规定
    2. 抽象基类可以定义字段,属性,和方法实现. 接口只能定义属性, 索引器, 事件和方法声明, 不能包含字段.
    3. 接口可以被多重实现, 抽象类只能被单一继承.
    4. 抽象类更多的是定义在一系列紧密相关的类之间, 而接口大多数是定义在关系疏松,但都实现某一功能的类中.

  • 相关阅读:
    span 固定宽度且与其它元素同一行的样式设置
    height、clientHeight、scrollHeight、offsetHeight区别
    jquery选择器多值情况处理(取select列表选项的值)
    用Javascript取float型小数点后两位,例22.127456取成22.13,如何做?
    【JS获取与设置】FCKeditor编辑器的值
    浅析java位运算符计算方式
    分治策略(算法)
    Java GUI入门教程
    Java面向对象知识总结
    数据结构(Java)——图的基础算法
  • 原文地址:https://www.cnblogs.com/niuniu1985/p/1563633.html
Copyright © 2020-2023  润新知