logo

מילת מפתח מופשטת של Java

מילת המפתח המופשטת משמשת להשגת הפשטה ב-Java. זהו משנה ללא גישה המשמש ליצירת מחלקה ושיטה מופשטת.

תפקידה של מחלקה מופשטת הוא להכיל שיטות מופשטות. עם זאת, הוא עשוי להכיל גם שיטות לא מופשטות. השיטה המוצהרת עם מילת מפתח מופשטת ואין לה כל יישום ידועה בתור שיטה מופשטת.

תחביר:-

 abstract class Employee { abstract void work(); } 

הערה - איננו יכולים להכריז על שיטות מופשטות במחלקה לא מופשטת.

כללים של מילת מפתח מופשטת

לאים

  • לא ניתן להשתמש במילת מפתח מופשטת עם משתנים ובנאים.
  • אם מחלקה מופשטת, לא ניתן ליצור אותה.
  • אם שיטה מופשטת, היא לא מכילה את הגוף.
  • אנחנו לא יכולים להשתמש במילת המפתח המופשטת עם ה סופי .
  • איננו יכולים להכריז על שיטות מופשטות כ פְּרָטִי .
  • איננו יכולים להכריז על שיטות מופשטות כ סטָטִי .
  • לא ניתן לסנכרן שיטה מופשטת.

מה לעשות

  • ניתן להשתמש במילת מפתח מופשטת רק עם מחלקה ומתודה.
  • מחלקה מופשטת יכולה להכיל בנאים ושיטות סטטיות.
  • אם מחלקה מרחיבה את המחלקה המופשטת, עליה ליישם לפחות אחת מהשיטות המופשטות.
  • מחלקה מופשטת יכולה להכיל את השיטה הראשית ואת השיטה הסופית.
  • מחלקה מופשטת יכולה להכיל שיטות מופשטות עמוסות מדי.
  • אנחנו יכולים להכריז על המעמד הפנימי המקומי כמופשט.
  • אנחנו יכולים להכריז על השיטה המופשטת עם משפט זרוק.

דוגמאות למילות מפתח מופשטות

דוגמה 1: מחלקה מופשטת המכילה את השיטה המופשטת

 abstract class Vehicle { abstract void bike(); } class Honda extends Vehicle { @Override void bike() { System.out.println('Bike is running'); } } public class AbstractExample1 { public static void main(String[] args) { Honda obj=new Honda(); obj.bike(); } } 
בדוק את זה עכשיו

תְפוּקָה:

 Bike is running 

דוגמה 2: מחלקה מופשטת המכילה את השיטה המופשטת והלא מופשטת

 abstract class Vehicle { abstract void bike(); void car() { System.out.println('Car is running'); } } class Honda extends Vehicle { @Override void bike() { System.out.println('Bike is running'); } } public class AbstractExample2 { public static void main(String[] args) { Honda obj=new Honda(); obj.bike(); obj.car(); } } 
בדוק את זה עכשיו

תְפוּקָה:

 Bike is running Car is running 

דוגמה 3: מחלקה מופשטת המכילה את הבנאי

 abstract class Vehicle { String msg; Vehicle(String msg) { this.msg=msg; } void display() { System.out.println(msg); } } class Honda extends Vehicle { Honda(String msg) { super(msg); } } public class AbstractExample3 { public static void main(String[] args) { Honda obj=new Honda('Constructor is invoked'); obj.display(); } } 
בדוק את זה עכשיו

תְפוּקָה:

 Constructor is invoked 

דוגמה 4: מחלקה מופשטת המכילה שיטות מופשטות עמוסות מדי

 abstract class Vehicle { abstract void display(); abstract void display(String msg); } class Honda extends Vehicle { @Override void display() { System.out.println('abstract method is invoked'); } @Override void display(String msg) { System.out.println(msg); } } public class AbstractExample4 { public static void main(String[] args) { Honda obj=new Honda(); obj.display(); obj.display('overloaded abstract method is invoked'); } } 
בדוק את זה עכשיו

תְפוּקָה:

 abstract method is invoked overloaded abstract method is invoked 

דוגמה 5: שיעור מופשט פנימי

 class Vehicle { abstract class Car { abstract void display(); } class Honda extends Car { @Override void display() { System.out.println('inner abstract class is invoked'); } } } public class AbstractExample5 { public static void main(String[] args) { Vehicle obj=new Vehicle(); Vehicle.Car c=obj.new Honda(); c.display(); } } 
בדוק את זה עכשיו

תְפוּקָה:

 inner abstract class is invoked 

דוגמה 6: מחלקה מופשטת מקוננת

 abstract class Vehicle { abstract class Car { abstract void display(); } } class Honda extends Vehicle { class FourWheller extends Car { @Override void display() { System.out.println('nested abstract class is invoked'); } } } public class AbstractExample6 { public static void main(String[] args) { Vehicle obj=new Honda(); Honda h=(Honda)obj; Honda.FourWheller fw=h.new FourWheller(); fw.display(); } } 
בדוק את זה עכשיו

תְפוּקָה:

 nested abstract class is invoked