zoukankan      html  css  js  c++  java
  • 接口与抽象类 (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. 抽象类更多的是定义在一系列紧密相关的类之间, 而接口大多数是定义在关系疏松,但都实现某一功能的类中.

  • 相关阅读:
    23.Java函数
    22.java中的break和continue关键字
    21.Java中for循环
    20.java中的while循环
    19.java中选择判断语句(switch)
    18.java中判断(if…else)
    17.java运算符的优先级与结合性
    16.Java三元运算符
    数组去重
    数组 字符串 对象 常用方法
  • 原文地址:https://www.cnblogs.com/niuniu1985/p/1563633.html
Copyright © 2011-2022 走看看