Kompletní úvod do abstraktních tříd v Javě



Tento článek vám pomůže s podrobným přístupem k abstraktním třídám v Javě spolu s příklady, jak tento koncept pochopit mnohem lépe.

Abstraktní třídy v pomáhat uživatelům dosáhnout abstrakce, což je nejdůležitější objektově orientované programovací postupy, které se dodržují během procesu navrhování softwaru. V tomto článku probereme terminologii abstraktních tříd prostřednictvím následujícího dokumentu.

Co jsou abstraktní třídy v Javě?

Abstraktní třídy v působit jako hranice mezi metodou implementace a její funkčností. Používá se k výměně funkcí mezi Beton členové třídy a Abstraktní Třída.





Abstract-Classes-in-Java-Edureka

Abstraktní třídy jsou považovány za ty třídy, které skryjí Implementace metody podrobnosti od uživatele a zobrazit pouze Metoda Funkčnost. Jsou deklarovány pomocí klíčového slova abstraktní . Tyto metody mohou zahrnovat Abstraktní a Non-abstraktní metody v nich.

předat hodnotu předat odkaz java

Proč potřebujeme abstraktní třídy v Javě?

V Javě potřebujeme abstraktní třídy z následujících důvodů:



  • Podpora abstraktních tříd Dynamické rozlišení metody za běhu
  • Pomáhají uživatelům dosáhnout Volné spojení
  • Abstraktní třídy oddělují Definice metody od Zděděného Podtřídy
  • Poskytují Výchozí funkce definované metody pro všechny podtřídy
  • Abstraktní třídy poskytují a Šablona pro budoucí konkrétní třídy
  • Abstraktní třída umožňuje Kód Opakovaná použitelnost

Pravidla pro používání abstraktních tříd v Javě

Chcete-li implementovat abstraktní třídu v Javě, musíme dodržovat pravidla popsaná níže:



  • Abstraktní třída musí být deklarována pomocí abstraktní klíčové slovo.
  • Abstraktní třídy mohou zahrnovat abstraktní a non-abstraktní metody.
  • Abstraktní třída nemůže být instance.
  • Mohou zahrnovat konstruktéři a statický metody.
  • Abstraktní třída zahrnuje finále metody.

Způsoby dosažení Abstrakce v Javě

Proces Abstrakce v Javě lze dosáhnout následujícími dvěma metodami, jak je uvedeno níže:

  1. Implementace abstraktní třídy
  2. Implementace rozhraní

Syntaxe pro abstraktní třídy

Syntaxe pro definování abstraktních tříd a abstraktních metod je následující:

abstraktní třída Edureka {}
metoda abstraktní třídy ()

rozdíl mezi rozšířením a implementací

Praktické příklady abstraktních tříd

// Abstraktní třída

balíček Abstraktní veřejná abstraktní třída Osoba {soukromý Název řetězce soukromý Řetězec pohlaví veřejná Osoba (String nm, String gen) {this.name = nm this.gender = gen} public abstract void Studying () @Override public String toString () {návrat ' Jméno = '+ this.name +' :: Pohlaví = '+ this.gender}}

// Studentská třída

balíček Abstract public class Student extends Person {private int StudentID public Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studying () {if (StudentID == 0 ) {System.out.println ('Not Studying')} else {System.out.println ('Pursuing a Degree in Bachelor of Engineering')}} public static void main (String args []) {Person student = new Student ('Priya', 'Female', 0) Person student1 = new Student ('Karan', 'Male', 201021) Person student2 = new Student ('Kumari', 'Female', 101021) Person student3 = new Student (' John ',' Male ', 201661) student.Studying () student1.Studying () student2.Studying () student3.Studying () System.out.println (student.toString ()) System.out.println (student1.toString ()) System.out.println (student2.toString ()) System.out.println (student3.toString ())}}

Výstup:

Nestuduji
Dosažení titulu v bakalářském inženýrství
Dosažení titulu v bakalářském inženýrství
Dosažení titulu v bakalářském inženýrství
Jméno = Priya :: Pohlaví = Žena
Jméno = Karan :: Pohlaví = Muž
Jméno = Kumari :: Pohlaví = Žena
Jméno = John :: Pohlaví = Muž

Rozdíl mezi rozhraním a abstraktní třídou

Rozhraní Abstraktní třída
Může mít pouze abstraktní metodyMůže mít abstraktní a neabstrahové metody
Má pouze konečné proměnnéZahrnuje nefinálové proměnné
Má pouze statické a konečné proměnnéMá statické, nestatické, konečné, nekoncové proměnné
Neimplementuje abstraktní tříduMůže implementovat rozhraní
Implementováno pomocí klíčového slova „implementuje“Implementováno pomocí „rozšiřuje“ klíčové slovo
Lze rozšířit pouze rozhraníMůže rozšířit třídy a rozhraní Java
Členové jsou ve výchozím nastavení veřejníČlenové mohou být soukromí a chráněni

// Příklad abstraktní třídy

balíček abstactVSinterface abstraktní třída Shape {String objectName = '' Shape (String name) {this.objectName = name} abstract public double area () abstract public void draw ()} class Rectangle extends Shape {int length, width Rectangle (int length, int width, String name) {super (name) this.length = length this.width = width} @Override public void draw () {System.out.println ('Rectangle is drawn')} @Override public double area () {return (double) (length * width)}} class Circle extends Shape {double pi = 3,14 int radius Circle (int radius, String name) {super (name) this.radius = radius} @Override public void draw () { System.out.println ('Circle is drawn')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Shape rect = new Rectangle (20, 30, 'Rectangle') System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20, 'Cicle') System.out .println ('Plocha kruhu je:' + circle.area ())}}

Výstup:

Plocha obdélníku: 600,0
Plocha kruhu je: 628,0

jak tisknout pole php

// Příklad rozhraní

balíček rozhraní absVSint Tvar {void draw () double area ()} třída Obdélník implementuje Tvar {int délka, šířka Obdélník (int délka, int šířka) {this.length = délka this.width = width} @Override public void draw () {System.out.println ('Rectangle has been drawn')} @Override public double area () {return (double) (length * width)}} class Circle implements Shape {double pi = 3,14 int radius Circle (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Circle has been drawn')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} třída Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20) System.out.println ('Area of ​​circle:' + circle.area ())}}

Výstup:

Plocha obdélníku: 600,0
Plocha kruhu: 628,0

Tím se dostáváme na konec tohoto článku. Doufám, že jste pochopili důležitost abstrakce, syntaxe, funkčnosti, pravidel abstrakce v Javě a praktických příkladů s nimi souvisejících.

Nyní, když jste pochopili základy Javy, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými rámci Java, jako je Hibernate & Jaro .

Máte na nás dotaz? Uveďte to v sekci komentářů v tomto blogu „Abstract Classes in Java“ a my se vám ozveme co nejdříve.