zoukankan      html  css  js  c++  java
  • 对Java不能多继承,只能单继承,却可以实现多个接口的理解

    1、java与C++的不同点在于多继承。

    Java:不能多继承,只能单继承,但可以实现多个接口

    C++:可以实现多继承。
    例如: class A extends B implements C,D,E {}

    2、如若写成 interface A extends B,C,D 可以编译通过,这样是不是违背了JAVA的单继承特性呢?

    (1)接口可以继承多个接口是因为接口里面的定义的方法都是未实现的,不会增加复杂性。

    (2)接口不是类,而是对类的一组需求的描述。接口绝不能含有实例域,也不能在接口中实现方法。接口可以实现多继承不会增加代码的复杂性。

    (3)多继承是发生在执行期间的,而不是在编译期间,所以可以编译通过,并且不违背Java是单继承的。

    3、为什么接口可以继承多个接口?

    因为接口定义的都是抽象的方法,而且不能在接口中实现方法。所以,接口继承多个接口,并不会使接口的结构变得很复杂。相反,这样做,还能给一个团队在开发的过程中,提供很多便利。

    单继承指的是class,而不是interface. interface是可以多继承的。

    4、为什么JAVA改成只能单继承?

    因为在C++中一个类是可以继承自多个类,但这样的机制会使类的结构变的很复杂,所以JAVA将C++这一机制通过接口得以改善。
    JAVA中不允许类多重继承,只能单一继承,但有些情况单一继承并不能表达出现实世界中的某些逻辑关系,所以就提出了通过接口来实现多重继承。

  • 相关阅读:
    云服务器
    Linux 安装python3.7.0
    python 读写excel(xls格式)
    常规问题解决:File "/usr/bin/yum", line 30 及 File "/usr/libexec/urlgrabber-ext-down", line 28
    pyqt5--TableWidGet
    标准库中的装饰器 lru_cache和全新的 singledispatch
    python 导入导出依赖包命令
    python的with语法的深入理解
    时间序列(四) 预测
    时间序列 ARIMA 模型 (三)
  • 原文地址:https://www.cnblogs.com/cornucopia2015/p/4806697.html
Copyright © 2011-2022 走看看