zoukankan      html  css  js  c++  java
  • 接口和抽象类

    一直都在用接口和抽象类这2个东东。但是对于两者的区别,用文字表述,却还有些问题。

    那就在这里记录一下,以作备忘:
       《来源地址:http://www.cnblogs.com/roky/archive/2008/02/21/1076332.html

    区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。

    区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。

    区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。

    区别四,在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。


    如下给出两者的简单对比表格。

     

    接口

    抽象类

    多继承

    支持

    不支持

    类型限制

    没有

    有,只能是引用类型

    方法实现

    继承类型中必须给出方法实现

    继承类中可以不给出

    扩展性

    比较麻烦

    相对比较灵活

    多层继承

    比较麻烦,需要借助虚函数

    比较灵活

  • 相关阅读:
    [转]项目需求范围管理
    JavaScript 王者归来
    [转]大文件上传组件
    [转]使用vs2005自带的sql2005 express
    JS判断Caps Lock
    [转]Web项目管理思考
    [转]JS严格验证身份证
    两分钟用C#搭建IE BHO勾子, 窃取密码
    asp.net性能提升十个方法(Microsoft)
    [转]Asp.net 将js文件打包进dll 方法
  • 原文地址:https://www.cnblogs.com/McJeremy/p/1683953.html
Copyright © 2011-2022 走看看