zoukankan      html  css  js  c++  java
  • 接口与抽象类区别

    抽象类:往往用来表征我们对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但本质上相同的具体概念的抽象。(面向对象的概念中,所有的对象都是通过类来描绘的。但是,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类)

    作用:主要用来进行类型隐藏。

    接口的定义跟抽象类相似,也可以说接口就是一个特殊的抽象类。

    它们的区别:

    1、abstract class在C#中表示的是一种继承关系,一个类只能使用一次继承关系。但是一个类却可以实现多个interface。

    2、在abstract class中可以有自己的数据成员,也可以有非abstract的成员方法,而在interface中,可以定义方法、属性、索引和事件,所有的成员方法都是abstract的。

    3、abstract class和interface所反映出的设计理念不同。其实abstract class表示的是‘is-a’关系,interface表示的是‘like-a’。

    4、实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中不能有实现方法。

    5、抽象类中的变量默认是private型,其值可以在子类中重新定义,也可以重新赋值。

    6、接口中的方法默认都是public,abstract类型的,并且不允许成员加任何访问修饰符。

    abstract class 成员的默认访问修饰是什么:

    很明显,方法默认的修饰是private,可以根据需要加访问修饰符。

    一笔带过:委托跟接口的区别就是,委托只能包含属性,索引,方法,而不能包含事件。

     

  • 相关阅读:
    ES6学习笔记(11)----Proxy
    ES6学习笔记(10)----Set和Map数据结构
    ES6学习笔记(9)----Symbol
    ES6学习笔记(8)----对象的扩展
    ES6学习笔记(6)----函数的扩展
    ES6学习笔记(5)----数值的扩展
    struts2学习之基础笔记1
    前端面试---常见的web安全及防护原理
    前端面试整理笔记一
    id选择器
  • 原文地址:https://www.cnblogs.com/Vam8023/p/8461714.html
Copyright © 2011-2022 走看看