`

JAVA为什么只允许单继承

 
阅读更多
一个类只能继承一个其他的类
     在Java语言中禁止多重继承:一个类可以具有多个直接父类。多重继承不合法的原因是容易引发意义不明确。例如,有一个类C,如果允许它同时继承A类与B类(class C extends A,B{}),假如A、B两个类都有同一种方法fun(),如果定义:
     C c = new C();
     那么c.fun()应该调用哪一个父类的fun()方法?无法给出答案,因此Java语言禁止多重继承。 但C++却是可以的,所以C++比起java在语法上却难了些。

     但一个类可以实现多个接口,这又是为什么?
     这一特性和上一特性结合使用,可以获得和多重继承相似的效果。
     现假如类C实现了A与B两个接口(class c implements A,c{}),且这两个接口都有一个抽象fun()方法,现在调用方法时没有任务不明确的地方,因为接口中的所有方法都是抽象,并且超类的任何方法都需在子类中地覆盖实现,所以调用时其实是调用自己本身的实现方法,没有什么调用不明确的说法。
分享到:
评论
1 楼 huosange 2014-02-11  
简单明了,通俗易懂

相关推荐

    27_Java为什么没有多继承

    然而,与许多其他面向对象语言不同,Java只支持单继承,不支持多继承。这究竟是为什么呢?让我们深入探讨这个问题。 首先,我们需要理解什么是继承。继承是一种“is-a”关系,允许一个类(子类)继承另一个类(父类...

    Java 实现继承实例代码

    在Java编程语言中,继承是面向对象特性之一,它允许我们创建一个类(子类或派生类)作为现有类(父类或基类)的扩展。这种设计模式有助于代码重用,使得子类可以继承父类的属性和方法,并且可以添加新的功能或覆盖已...

    Java面向对象之继承练习题.doc

    1. **类的继承**:在Java中,继承是面向对象编程的重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,我们可以创建一个`Music`类作为其他音乐相关类的基类。 2. **构造方法**:构造方法用于...

    java基础继承封装多态

    在 Java 中,只支持单一继承,也就是说一个类只能有一个直接父类。 继承的优点是可以提高代码的复用性和灵活性。子类可以继承父类的属性和方法,并且可以添加自己的属性和方法。子类也可以重写父类的方法,以提供...

    java继承类实例

    在Java编程语言中,继承是一种面向对象编程的重要特性,它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。这有助于代码重用,减少冗余,并实现多态性。在这个特定的程序中,我们看到了一个关于...

    JAVA中什么是继承.docx

    继承的特点:只需明确一点,java 只支持单继承,不支持多继承,但支持多重继承。 Java 中继承的实现方式有两种: 1. 单继承:一个子类只能继承一个父类。 2. 多重继承:一个子类可以继承多个父类,但 Java 语言中...

    Java 接口与继承

    2. 尽管Java在类继承上是单继承的,但可以通过实现多个接口来实现多重继承的效果,接口是Java中另一种形式的继承,它允许一个类实现多个接口。 3. 子类继承了父类的所有非私有成员变量和方法,但不包括构造函数。...

    详解java为什么不允许类多重继承却允许接口多重继承

    Java语言设计时,选择不允许类进行多重继承,但允许接口的多重继承,这是基于多方面的考虑,主要是为了防止出现歧义、保证代码的稳定性和可维护性,以及推动面向接口编程的设计理念。以下是对这个话题的详细解释: ...

    java中继承与多态的题目

    Java 只支持单继承,但可以通过接口实现多继承。 继承的特点 继承有以下几个特点: * 子类继承父类的所有成员变量和方法 * 子类可以重写父类的方法 * 子类可以添加新的成员变量和方法 * 子类可以 override 父类的...

    java继承部分课件

    Java继承是面向对象编程中的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。在这个名为"java继承部分课件"的资料中,我们可以期待学习到关于Java继承的基础知识、...

    Java父类继承代码示例

    在Java中,类只允许单继承,即一个类只能直接继承一个父类。但是,Java支持多层继承,即一个子类可以继承另一个子类,从而形成类的继承树。例如: ```java public class Mammal extends Animal { // 特有的属性和...

    Java--类的继承

    2. 为什么需要继承: 继承主要解决的问题是代码重复和软件设计的模块化。在现实世界中,许多对象具有相似的特征和行为。通过继承,我们可以创建一个基础类,包含共有的属性和方法,然后根据需要创建更具体的子类,...

    经典java继承例子

    Java继承是面向对象编程的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的...

    java继承例题

    1. 单继承:Java只支持单继承,即一个类只能继承一个超类。 2. 多层继承:Java支持多层继承,即一个类可以继承另一个类,该类又可以继承另一个类,以此类推。 3.继承变量和方法:子类继承了超类的成员变量和成员方法...

    java 中的接口与继承

    在Java编程语言中,接口(Interface)和继承(Inheritance)是面向对象设计的重要特性,它们为代码提供了灵活性、可扩展性和复用性。本文将深入探讨这两个概念以及它们在实际开发中的应用。 首先,我们来看一下接口...

    Java实验报告——类的继承、多态的应用

    在本实验报告中,我们将深入探讨Java编程中的两个核心概念:类的继承和多态的应用。实验主要目标是加深对抽象类和抽象方法的理解,并掌握如何在实际编码中实现类的继承以及多态性。 首先,让我们理解抽象类和抽象...

    JAVA继承的相关知识点

    6. **为什么需要继承**: - 提高代码的重用性:子类可以直接使用父类的功能,无需重复编写相同代码。 - 提高程序的扩展性:当需要增加新功能时,可以通过创建新的子类来实现,而不是修改原有代码,遵循开闭原则。 ...

    Java中extends类的继承

    类的继承是面向对象编程的一个核心特性,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。下面将详细探讨`extends`关键字在Java中的使用、特点以及相关知识点。 1. **类的继承...

    java基础学习(继承与接口的区别及产生原因)

    Java中的继承基于`extends`关键字,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的所有非私有成员(方法、属性)。这意味着子类将自动拥有父类的公共和受保护成员,从而能够复用代码,减少重复...

    Java8默认方法和多继承Java开发Java经验技巧共8

    在Java8之前,接口只允许声明抽象方法,不包含任何实现。但是,从Java8开始,接口可以包含具有默认实现的方法,这就是默认方法。默认方法使用`default`关键字定义,并且在接口中提供了一个具体实现。这种设计是为了...

Global site tag (gtag.js) - Google Analytics