ההבדל בין שיעור מופשט לבין ירושה

Anonim

Abstract בכיתה לעומת ירושה

Class מופשט וירושה הם שני מושגים חשובים מונחה עצמים למצוא שפות תכנות מונחה עצמים רבים כמו ג 'אווה. המעמד המופשט יכול להיחשב כגרסה מופשטת של מעמד רגיל (בטון), ואילו הירושה מאפשרת לשיעורים חדשים להרחיב את המעמדות האחרים. מחלקה מופשטת היא מחלקה שלא ניתן לאתחל אותה, אך ניתן להאריך אותה. אז, כיתות אבסטרקט הם משמעותיים רק אם שפת התכנות תומכת בירושה. ב Java, כיתות אבסטרקט הם הכריזו באמצעות מילות מפתח מופשט, תוך הרחבת מילת המפתח משמשת בירושה מ (סופר) בכיתה.

-> ->

מה זה בכיתה מופשטת?

בדרך כלל, לא ניתן ליצור מופעים של כיתות אבסטרקטיות, הידועות גם בשם "כיתות בסיס מופשטות" (ABC) (לא ניתן ליצור מופע של מחלקה זו). אז, שיעורים מופשטים הם רק משמעות אם יש את שפת התכנות תומך ירושה (היכולת ליצור subclasses מ הרחבת בכיתה). שיעורים מופשטים בדרך כלל מייצגים מושג או ישות מופשטים עם יישום חלקי או ללא יישום. לכן, כיתות אבסטרקטיות משמשות ככיתות אב שמהן נגזרים כיתות ילדים, כך שכיתת הילדים תשתף את התכונות השלמות של הכיתה ההורה ותוכל להוסיף פונקציונליות להשלמתן.

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

-> ->

מהי ירושה?

ירושה היא מושג מונחה עצמים, המאפשר שיעורים חדשים להרחיב שיעורים אחרים. הרחבת מילת המפתח משמשת ליישום הרעיון של ירושה בשפת התכנות של Java. הירושה מספקת למעשה שימוש חוזר בקוד על ידי מתן אפשרות להרחיב את המאפיינים וההתנהגות של המעמד הקיים על ידי קבוצה חדשה שהוגדרה. כאשר תת-מחלקה חדשה (או מחלקה נגזרת) מרחיבה את המעמד העל (או קבוצת האב) שתת-מחלקה תירש את כל התכונות והשיטות של המעמד העל. תת-המחלקה יכולה לעקוף את ההתנהגות (לספק פונקציונליות חדשה או מורחבת לשיטות) בירושה ממחלקת האב.בדרך כלל, תת-קבוצה אינה יכולה להאריך מספר רב של מחלקות-על (לדוגמה, ב- Java). לכן, אתה לא יכול להשתמש מורחבת עבור ירושה מרובים. כדי לקבל ירושה מרובים, אתה צריך להשתמש בממשקים.

מה ההבדל בין מעמד מופשט לבין ירושה?

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