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,可以根据需要加访问修饰符。

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

     

  • 相关阅读:
    【Python】 命名空间与LEGB规则
    【Python&数据结构】 抽象数据类型 Python类机制和异常
    【算法】 算法和数据结构绪论
    【网络】 数据链路层&物理层笔记
    svn -- svn图标解析
    svn -- svn数据仓库
    svn -- svn安装与配置
    svn -- svn简介
    mysql -- 远程访问mysql的解决方案
    css3 -- 自动生成序号(不使用JS,可任意排序)
  • 原文地址:https://www.cnblogs.com/Vam8023/p/8461714.html
Copyright © 2011-2022 走看看