`

为什么java中只允许继承一个类?

    博客分类:
  • Java
阅读更多

为什么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()方法,现在调用方法时没有任务不明确的地方,因为接口中的所有方法都是抽象,并且超类的任何方法都需在子类中地覆盖实现,所以调用时其实是调用自己本身的实现方法,没有什么调用不明确的说法。

分享到:
评论

相关推荐

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

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

    Java中extends类的继承

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

    java继承类实例

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

    Java--类的继承

    在Java编程语言中,类的继承是面向对象编程的一个核心概念,它允许我们创建新的类(子类)基于已存在的类(父类或超类)。继承提供了代码的复用性,使得子类可以共享父类的属性和方法,同时还可以添加自己的特定功能...

    Java设计一个银行帐户类(继承与多态)

    在Java编程中,设计一个银行账户类是学习面向对象编程的一个常见练习,它涉及到类的定义、对象的创建以及继承和多态的概念。在这个实验中,我们创建了一个名为`BankCount`的类来代表银行账户,并包含了一系列与账户...

    java类和对象继承多态性

    java类和对象继承多态性是java语言中的一种基本机制,它允许开发者创建一个新的类,并继承已有的类的属性和行为。这种机制可以提高代码的复用性和维护性。 继承是java语言中的一种机制,通过继承,开发者可以创建一...

    Java 实现继承实例代码

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

    Java 接口与继承

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

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

    在Java中,一个类如果包含至少一个抽象方法,那么这个类就必须被声明为抽象类,使用`abstract`关键字修饰。抽象方法是没有具体实现的方法,只提供方法签名。例如,`Student`类就是一个抽象类,其中的`logIn()`和`...

    java 继承泛型类示例

    在Java编程语言中,泛型是一种强大的特性,它允许我们在类、接口和方法中使用类型参数,从而提高代码的灵活性和安全性。当我们谈论“继承泛型类”时,这意味着一个类(子类)正在扩展一个已经定义了泛型的类(父类)...

    java中继承与多态的题目

    继承是面向对象编程的一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法。继承的目的是为了实现代码的重用和简化程序的设计。在 Java 中,继承是通过关键字 `extends` 实现的。 多态的概念 多态是...

    java基础类与继承.ppt

    在Java中,你可以通过类来创建对象,类就像一个蓝图或者模板,而对象是根据这个模板创建的具体实例。 例如,我们可以定义一个名为`Furniture`的类,其中包含属性如`price`(价格)、`weight`(重量)和`owner`...

    JAVA中什么是继承.docx

    2. 多重继承:一个子类可以继承多个父类,但 Java 语言中的类只支持单继承,而接口支持多继承。 继承的应用场景: 1. 代码重用:继承可以使得子类继承父类的代码,使得代码更加简洁和易维护。 2. 类之间的关系:...

    java继承例题

    Java继承是面向对象编程(OOP)的一种机制,允许一个类继承另一个类的成员变量和成员方法。通过继承,可以实现代码的重用和扩展。 在Java中,继承是通过使用关键字`extends`来实现的。例如,`class B extends A`...

    java_中关于_继承_的一个小例子.

    在Java编程语言中,继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和方法,从而实现代码的复用和扩展。这个小例子可能是为了演示如何在Java中实现继承以及它所...

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

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

    27_Java为什么没有多继承

    继承是一种“is-a”关系,允许一个类(子类)继承另一个类(父类)的属性和方法。在支持多继承的语言中,一个类可以同时继承多个父类,这样可以获得多个父类的特性。然而,Java选择了单继承,即一个类只能有一个父类...

    java实验三 类的继承--圆.rar

    在Java编程语言中,类的继承是面向对象编程的一个核心概念。这个"java实验三 类的继承--圆.rar"文件显然包含了一个关于如何在Java中实现类继承的实验项目,涵盖了实验代码、实验报告、心得体会以及相关的习题解答。...

    Java类继承初始化顺序

    在Java编程语言中,类继承是面向对象设计的一个核心特性,它允许我们创建一个新类(子类)作为现有类(父类)的扩展。当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、...

    java 继承非泛型类示例

    在Java编程语言中,继承是面向对象特性之一,它允许一个类(子类)继承另一个类(父类)的属性和方法。当我们谈论继承非泛型类时,意味着子类继承了一个没有使用泛型的父类。泛型是Java SE 5.0引入的新特性,用于...

Global site tag (gtag.js) - Google Analytics