zoukankan      html  css  js  c++  java
  • 关于接口与抽象类

    接口与抽象类的区别总结一下,主要是摘自王涛的《你必须知道.Net》一书,在此感谢王涛老师。

    1 相同点

    1)都不能被直接实例化,都可以通过继承实现其抽象方法;

    2)都是面向抽象编程的技术基础,实现了诸多的设计模式。

    不同点:

    1)接口支持多继承,抽象类不能实现多继承。严格意义上说,接口继承类应该称为类实现接口;

    2)接口只能定义抽象规则;抽象类既可以定义规则,还可以提供已实现的成员;

    3)接口是一组行为规范;抽象类是一个不完全的类,着重族的概念;

    4)接口用于支持回调;因为继承不支持,所以抽象类在实现回调时有局限性。

    接口可用作值类型与引用类型;抽象类只能用作引用类型。

    接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性和包含的方法。

    3 规则与场合

    1)面向对象思想最重要的一个原则:面向接口编程;

    2) 借助接口和抽象类,23个设计模式实现。简单的说,面向抽象编程,通过封装变化实现实体之间的关系;

    3)抽象类主要用于关系密切的对象,而接口最适合为相关的类提供通用功能;

    4) 接口着重于CAN-DO关系类型,而抽象类偏重于IS-A式的关系;

    5) 接口多定义对象的行为;抽象类多定义对象的属性;

    6) “接口不变”,是应该考虑的重要因素;

    7) 在接口中,所有的方法默认为public;

    8) 在抽象方法声明中,不能使用static或virtual修饰符。

  • 相关阅读:
    Linux PXE无人值守网络装机
    Linux 自动化部署DNS服务器
    Linux DNS服务配置
    Mysql数据库基础学习笔记
    Linux AIDE(文件完整性检测)
    mysql:[Err] 1068
    sql的date、时间函数、时间戳
    hive之建立分区表和分区
    excel转sql代码
    spark-submit之使用pyspark
  • 原文地址:https://www.cnblogs.com/sunny1893/p/3870424.html
Copyright © 2011-2022 走看看