Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Čo je Viacnásobná dedičnosť v jazyku Java ?

Vývojári navrhnutý Java od základu pôsobí ako kompletný objektovo orientovaný programovací jazyk . Pretože toto , koncepty neoddeliteľnou objektovo orientované programovanie sa docela dôležité v základnej funkčnosť Java . Zvlášť , koncepty dedičnosti triedy ( a problémy , ktoré vznikajú z triedy dedičnosť ) , sú základnými problémami na Java programátor . Jedným z týchto problémov , viacnásobnú dedičnosť , môže byť obchádzané s pochopenie toho, ako dedičnosť funguje, a ako používať Java rozhranie . OOP a dedičnosť

objektovo orientovaného programovania používa pojem dedičstvo rozšíriť funkčnosť objektov . Zvážte , kedy programátor vytvorí objekt , sa môžu neskôr zistí , že je potrebné vytvoriť veľmi podobný objekt , s nepatrnými rozdielmi (možno rozšíriť funkčnosť predchádzajúci objekt v novom kontexte ) . To je miesto , kde dedičnosť , poďte ďalej objekt , ktorý programátor " pochádza " z iného " základné " objekt dedia metódy a premenné tejto triedy , a potom môžete pridať ďalšie funkcie do neho ( ako v nasledujúcom príklade Java ) :

public class Sphere {

polomer public int ;

}

public class loptu rozširuje sféru {

public string farby ; //Guľový dodáva " farba " variabilné , ale tiež používa " polomer " variabilná

}
viacnásobnú dedičnosť

Na nejakom mieste , programátor môže stať pokušenia odvodiť jednu triedu z rôznych tried . Toto je známe ako " viacnásobnú dedičnosť " , a zatiaľ čo zdanlivo užitočné , môže spôsobiť problémy , ako je notoricky známy " diamantové problém . " Problém nastane , ak diamant dve triedy dedia z rovnakej triedy ( napr. triedy B a C , ktoré vyplývajú z triedy A ) , zatiaľ čo iná trieda ( D ) dedí od oboch B a C. Keď je vytvorený D objekt , systém zaobchádza ako typ základnej triedy ( class " lopta " je " gule " , napríklad ) . V probléme diamantu , systém nemôže určiť , rozhodne to , čo trieda D je ( je to typ ABD alebo zadajte ACD ? ) , Ktorý spôsobuje problémy .
Java a viacnásobné dedičnosti

Vzhľadom k problémom s viacnásobnú dedičnosť , Java neumožňuje viacnásobnú dedičnosť . Avšak , v skutočnosti vyplývajúce tried z rôznych základných tried môže byť vykonané bezpečným spôsobom prostredníctvom využitia " rozhrania " . Rozhranie je podobné triede , okrem toho , že sa iba definuje štruktúru triedy , ale nie aktuálny kód . Základná trieda , ktorá implementuje rozhranie nutne " zdediť " funkčnosť rozhranie : to len sľubuje , že využije svoje štruktúry . Pretože trieda , ktorá implementuje rozhranie nededia z inej triedy ( a to nie je typ základnej triedy ) , potom programátor môže implementovať viacero rozhraní , pomocou rovnakej triedy
Príklad : . Dedičnosť a rozhranie

Nasledujúci príklad ukazuje rozdiel medzi dedičnosti objektu a rozhrania . Dôležité je , že trieda , ktorá dedí z inej získa prístup k základnej triede , pretože v podstate sa stáva typom tejto triedy ( ako v " gule " a " Boule " tried ) . Trieda , ktorá implementuje rozhranie sľubuje iba implementovať štruktúru rozhranie : nie je to typ , že rozhranie :

rozhranie Basic {

int doubleA ( ) ; //poznámka : nie skutočný kód je definovaná v rozhraní

}

public class B implementuje Basic {

public int ;

public int doubleA ( ) //Trieda B musí definovať " doubleA ( ) " metódu implementovať " Basic "

{ return a * 2 ; }

}

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené