Jak implementovat vícenásobnou dědičnost v Javě?



Tento článek vám pomůže implementovat vícenásobnou dědičnost v Javě prostřednictvím rozhraní a následovat programovou demonstraci.

Tento článek vám pomůže implementovat koncept, který jinak není možné implementovat v Javě. Mám na mysli Multiple . V tomto článku se dotkneme následujících ukazatelů,

Pojďme tedy začít s tímto článkem Multiple Inheritance in Java,





Vícenásobná dědičnost v Javě

Objektově orientované programování poskytuje uživateli funkci vícenásobné dědičnosti, přičemž třída může zdědit vlastnosti více než jedné nadřazené třídy. Zjednodušeně řečeno, vícenásobná dědičnost znamená třídu rozšiřující více než jednu třídu.

Programovací jazyk Java není schopen tuto funkci přímo využít. Toho lze dosáhnout nepřímo pomocí rozhraní.



Pokračujeme s tímto článkem o vícenásobné dědičnosti v Javě,

Ukázkový program

V následujícím příkladu máme dvě rozhraní: Motorbike a Cycle. Rozhraní motocyklu se skládá z rychlosti atributu. Metoda je totalDistance (). Rozhraní cyklu se skládá z atributu distance () a rychlosti metody ().

Obě tato rozhraní jsou implementována třídou TwoWheeler.



interface MotorBike {int speed = 50 public void totalDistance ()} interface Cycle {int distance = 150 public void speed ()} public class TwoWheeler implements MotorBike, Cycle {int totalDistance int avgSpeed ​​public void totalDistance () {totalDistance = speed * distance System .out.println ('Celková ujetá vzdálenost:' + totalDistance)} rychlost veřejného neplatnosti () {int avgSpeed ​​= totalDistance / speed System.out.println ('Udržovaná průměrná rychlost:' + avgSpeed)} public static void main (String args []) {TwoWheeler t1 = nový TwoWheeler () t1.totalDistance () t1.speed ()}}

Výstup

délka javascriptového pole

Celková ujetá vzdálenost: 7500

Průměrná udržovaná rychlost: 150

Výše uvedený program se vyhne nejednoznačnosti, i když se místo rozhraní používají třídy. Java to však nepodporuje. Když obě třídy mají v sobě stejnou metodu, kompilátor není schopen rozhodnout o volání metody. Použití rozhraní se této nejednoznačnosti vyhne, protože metody rozhraní jsou ve výchozím nastavení abstraktní.

Pokračujeme s tímto článkem o vícenásobné dědičnosti v Javě,

Vícenásobná dědičnost bez dvojznačnosti

interface InterfaceOne {public void disp ()} interface InterfaceTwo {public void disp ()} public class Main implements InterfaceOne, InterfaceTwo {@Override public void disp () {System.out.println ('display () method implementation')} public static void main (String args []) {Main m = new Main () m.disp ()}}

Výstup

implementace metody display ()

Main metoda implementuje obě rozhraní, tj. InterfaceOne a InterfaceTwo. Provádí se bez nejasností.

Podívejme se na další příklad pro lepší pochopení vícenásobného dědictví:

rozhraní Sing

{

výchozí neplatný singRock () {

System.out.println („Zpívám rock“)

}

}

rozhraní Dance

{

výchozí void danceSlow () {

System.out.println („Tancuji pomalu!“)

}

}

veřejná třída Lidské nářadí Sing, Dance

{

public static void main (String [] args)

{

Člověk h = nový člověk ()

h.singRock ()

h.danceSlow ()

}

učení ssis krok za krokem

}

Výstup

Zpívám rock

Tančím pomalu!

Metody popsané v tomto článku tak lze dosáhnout vícenásobné dědičnosti.

Tak jsme dospěli ke konci tohoto článku o „Multiple Inheritance in Java“. Pokud se chcete dozvědět více, podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Školicí a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.