Abstraktní Třída

abstraktní třída je třída, která je deklarována abstraktní — to může nebo nemusí obsahovat abstraktní metody. Abstraktní třídy nelze instancovat, ale mohou být podtříděny. Abstraktní třída může mít statická pole a statické metody. Když je abstraktní třída podtříděna, podtřída obvykle poskytuje implementace pro všechny abstraktní metody ve své mateřské třídě. Pokud tomu tak však není, musí být podtřída také prohlášena za abstraktní.,

abstraktní metoda je metoda, která je deklarována bez realizace (bez závorek a následuje středník), jako je tohle:

abstract void sum(int a, int b);

Zvažte použití abstraktní třídy, pokud některý z těchto tvrzení se vztahují k vaší situaci:

  1. chcete sdílet kód mezi několika úzce souvisejících tříd.
  2. očekáváte, že třídy, které rozšiřují vaši abstraktní třídu, mají mnoho běžných metod nebo polí nebo vyžadují jiné modifikátory přístupu než veřejné (například chráněné a soukromé).
  3. chcete deklarovat nestatická nebo nekončící pole., To vám umožní definovat metody, které mohou přistupovat a upravovat stav objektu, ke kterému patří.

rozhraní

rozhraní je pouze deklarací metod objektu; není to implementace. V rozhraní definujeme, jakou operaci může objekt provést. Tyto operace jsou definovány třídami, které implementují rozhraní. Rozhraní tvoří smlouvu mezi třídou a vnějším světem a tato smlouva je vymáhána kompilátorem v době sestavení.,

zvažte použití rozhraní, pokud se některá z těchto prohlášení vztahují na vaši situaci:

  1. očekáváte, že nesouvisející třídy implementují vaše rozhraní. Například rozhraní srovnatelná a Klonovatelná jsou implementována mnoha nesouvisejícími třídami.
  2. chcete specifikovat chování konkrétního datového typu, ale nezajímáte se o to, kdo implementuje jeho chování.
  3. chcete využít více dědictví.,

Původně publikováno červen 2016

Další Čtení

  • Při (Ne) Použití Java Abstraktní Třídy
  • Java: Rozhraní Vs. Abstraktní Třídy
  • Jak si Vybrat Mezi Rozhraním a Abstraktní třídou v Javě