logo

ההבדל בין מחלקה מופשטת לממשק

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

אבל ישנם הבדלים רבים בין מחלקה מופשטת לממשק המובאים להלן.

שיעור מופשטמִמְשָׁק
1) שיעור מופשט יכול יש מופשטים ולא מופשטים שיטות.ממשק יכול להיות מופשט בלבד שיטות. מאז Java 8, זה יכול להיות ברירת מחדל ושיטות סטטיות גַם.
2) שיעור מופשט אינו תומך בירושה מרובה .מִמְשָׁק תומך בירושה מרובה .
3) שיעור מופשט יכולים להיות משתנים סופיים, לא סופיים, סטטיים ולא סטטיים .לממשק יש רק משתנים סטטיים וסופיים .
4) שיעור מופשט יכול לספק יישום של ממשק .מִמְשָׁק לא יכול לספק יישום של מחלקה מופשטת .
5) ה מילת מפתח מופשטת משמש להכרזה על מחלקה מופשטת.ה מילת מפתח בממשק משמש להצהרת ממשק.
6) אנ שיעור מופשט יכול להרחיב מחלקה נוספת של Java ולהטמיע ממשקי Java מרובים.א מִמְשָׁק יכול להרחיב ממשק Java אחר בלבד.
7) אנ שיעור מופשט ניתן להרחיב באמצעות מילת המפתח 'מאריך'.א מִמְשָׁק ניתן ליישם באמצעות מילת המפתח 'יישמים'.
8) לג'אווה שיעור מופשט יכולים להיות חברי כיתה כמו פרטיים, מוגנים וכו'.חברים בממשק Java הם ציבוריים כברירת מחדל.
9) דוגמא:
מחלקה מופשטת ציבורית Shape{
public abstract void draw();
}
דוגמא:
ממשק ציבורי ניתן לצייר{
void draw();
}

פשוט, מחלקה מופשטת משיגה הפשטה חלקית (0 עד 100%) ואילו ממשק משיג הפשטה מלאה (100%).

דוגמה למחלקה מופשטת וממשק ב-Java

בואו נראה דוגמה פשוטה שבה אנו משתמשים בממשק ובמחלקה מופשטת שניהם.

 //Creating interface that has 4 methods interface A{ void a();//bydefault, public and abstract void b(); void c(); void d(); } //Creating abstract class that provides the implementation of one method of A interface abstract class B implements A{ public void c(){System.out.println('I am C');} } //Creating subclass of abstract class, now we need to provide the implementation of rest of the methods class M extends B{ public void a(){System.out.println('I am a');} public void b(){System.out.println('I am b');} public void d(){System.out.println('I am d');} } //Creating a test class that calls the methods of A interface class Test5{ public static void main(String args[]){ A a=new M(); a.a(); a.b(); a.c(); a.d(); }} 
בדוק את זה עכשיו

תְפוּקָה:

 I am a I am b I am c I am d