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

    接口和抽象类的使用是大家经常讨论的问题,什么时候使用接口,什么该用抽象类,两者经常交叉在一起,对它们进行彻底的分析是很有必要的。


    接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值,接口方法不能包含任何实现。

    抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类,在抽象方法声明中不能使用 static 或 virtual 修改符, 实现抽象方法由override方法来完成。  


    相同点:

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

     
    不同点:

    接口支持多继承,抽象类不能实现多继承

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

    使用规则与场合:

    接口中不能定义字段,也不能有实现的方法,抽象类中可以定义字段,包括实现的方法;

    尽量将接口设计成单一的功能,保持接口不变是设计时首要考虑的问题, 扩展时,应该增加新的接口,而不要更改现有接口,因为向接口中添加新成员,会导至修改所有的派生类,并重新编译;

    如果预计会出现新功能需要扩展,设计时考虑使用抽象类,抽象类主要应用于关系密切的对象,而接口适合为不相关的类提供通用的方法。  

    对于这个两概念的深入理解,还应该建立在不断实践的基础上,实践出真理。

  • 相关阅读:
    java + jni + mingw实例开发(基于命令行窗口模式)
    OpenCv for Android
    Android图像处理实例教程
    eclipse使用技巧
    Android NDK开发实例教程
    Android开发的教程和资源
    JAVA安装,环境变量配置
    一些比较好的博客
    uwsgi启动Django项目时:unable to load app 0 (mountpoint='') (callable not found or import error) *** no app loaded. going in full dynamic mode ***
    robot中使用evaluate转化数据格式
  • 原文地址:https://www.cnblogs.com/fredx/p/1622466.html
Copyright © 2011-2022 走看看