כיתת מופשט לעומת כיתת בטון

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

מהי מחלקת בטון?

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

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

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

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

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

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