您当前的位置:首页 >> 设计观点

Java:Java中的多重继承疑虑

2023-02-28 12:16:20

继承人是面向;也编程 (OOP) 语种(如 Java)的主要动态之一。它是一种以增强设计模式之中类提拔能力的方式则组织类的基本新科技。多重继承人是众多继承人类别之中的一种,是继承人的系统的一个重要应当。本文探讨了一般继承人的一些本质以及 Java 之中多重继承人的不确定性。

详述

继承人创始人了举例来说的其本质结构,其之中举例来说扩展了父类的动态。这样做到不仅是为了继承人超类的能力,也是为了被继承人的类赋予重新意义。这种能力的扩展举例来说是通过其余部分超类的动态、添加重新法则和属性来完成的。在 Java 之中,可以从超类引申的举例来说的数量没有实际限制。但是,其本质结构只能遵循时域方式则。

因此,在创始人举例来说时,我们不是单方面所有重新类成员,而是而无须它使用现有类的成员。现有类统称超类,新类统称举例来说,其之中每个举例来说都可以在继承人其本质结构之中进一步扩展带入超类。

Java之中的多级单继承人

Java 支持常规继承人,其之中每个类都引申自一个这样一来超类。每个引申的举例来说都有可能带入更进一步举例来说的超类。在单级继承人之中,举例来说继承人父类的属性。我们还可以从单个父类创始人多个举例来说,这些举例来说进一步可能是另一个父类的举例来说。因此,多级单继承人本质上意味着我们可以将单级类其本质的思想拓展多级。

多重继承人

Java 不支持多重继承人。多重继承人是就是指从多个这样一来超类引申的类。这上升了类之间联系的不确定性和模糊性。如果我们考虑在formula_其余部分之中愈演愈烈的真的,这个难题就很相对来说了。假定有两个类,A 和 B,每个类都定义了一个名为 func() 的formula_。今日,假定我们定义了另一个类 C,它继承人自 A 和 B(多重继承人),但是假定这个类没有其余部分名为 func() 的formula_。

端口的多重继承人

尽管 Java 不允许多重继承人,但它允许端口的多重做到。所以,在某种程度上,这个想要仍然存在。今日,什么是端口?

端口描述了一组法则,但不为所有法则缺少任何就其的做到。我们可以来使缺少法则就其做到的类来做到端口。这样,一个类可以做到多个端口,因此可以缺少从一个或多个端口引申的法则的就其做到。做到一个或多个端口的类与端口类别逐步形成一种is-a联系。这也意味着从类举例来说化的;也保证缺少端口单方面的动态。从此类引申的任何举例来说也缺少大致相同的动态。

端口对于为许多可能不相关的类缺少通用动态值得注意有用。因此,做到大致相同端口的类的;也可以组织起来所有端口之中描述的法则调用。

从 Java 8 开始,端口通过其完整做到支持默认法则。正因如此,一个类可以做到多个端口;因此,如果多个端口包括具有大致相同法则单张的默认法则,则做到的类应而无须要使用或其余部分的特定法则。

论证

多重继承人的经典难题之一统称圆锥难题。这可以通过统称虚拟继承人的继承人的系统来补救。但是,成果断定,Java 并没有因为完全全面禁止多重继承人而损失太多。事实上,Java 编译器已经破灭了它们,它为我们可以轻松补救的难题缺少了一个十分复杂的补救方案。尽管如此,仍然有支持它的 OOP 语种,例如 C++。

甲氨蝶呤和艾得辛哪个好
重庆包皮过长治疗医院
西宁看妇科哪个医院比较好
北京看白癜风哪家医院好
西安白癜风医院怎么样
友情链接