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ě?
- Proč potřebujeme abstraktní třídy v Javě?
- Pravidla pro používání abstraktních tříd v Javě
- Způsoby dosažení Abstrakce v Javě
- Syntaxe pro abstraktní třídy
- Praktické příklady abstraktních tříd
- Rozdíl mezi rozhraním a abstraktní třídou
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.
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:
- Implementace abstraktní třídy
- 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í metody | Můž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řídu | Můž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.