מעבר לתוכן

true- subtype


הודעות מומלצות

הי

 

יש לי את השאלה למטה..

 

התשובה שלה היא כן, אך לא ברור לי למה?

 

לפי מה שלמדנו true-subtype זה כאשר מחלקה יורשת ממחלקה אחרת, נגיד מחלקה B יורשת ממחלקה A, אזי אם נפעיל את כל המתודות של מחלקה A על מחלקה B הם צריכות להיות נכונות עדיין..

 

עבור המחלקה מלבן2 למשל, המתודה setWidth או setHeight הם לא יהיו נכונות עבור מחלקת ריבוע (כי אי אפשר לשנותבריבוע רק את האורך או הרוחב)

 

ולכן אני לא מבין למה בכל זאת התשובה היא שהם true-subtype?

 

אם כך, אז מהי ההגדרה של true-subtype? כנראה שאני לא מבין אותה ואשמח לעזרה ממשהו

 

תודה

 

 

http://img255.imageshack.us/img255/222/23634137.png
 
Uploaded with http://imageshack.us'>ImageShack.us
קישור לתוכן
שיתוף באתרים אחרים

אני לא מכיר ספיציפית את המונח true subtype, אבל אם ללכת לפי ההגדרה שהבאת - 

 

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

קישור לתוכן
שיתוף באתרים אחרים

הי, תודה על התשובה

 

אבל יש משהו שאני עדיין לא מבין

 

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

 

ולכן עדיין לא ברור לי למה היא true-subtype

 

אני אשמח לעוד עזרה

 

תודה

קישור לתוכן
שיתוף באתרים אחרים

ה-"חוזה" של setHeight הוא - "תן לי מספר ואני אחזיר מלבן שהגובה הוא שלו הוא הפרמטר שקיבלתי והרוחב שלו הוא אותו דבר כמו this".

 

האם העובדה ש-this הוא ריבוע גורמת למתודה להפר את החוזה הזה? לא, כי היא התחייבה להחזיר מלבן כללי.

קישור לתוכן
שיתוף באתרים אחרים

הצטרפות לשיח

באפשרותך לשלוח הודעה כעת ולהירשם מאוחר יותר. אם ברשותך חשבון, ניתן להתחבר עכשיו לשליחת הודעה דרך חשבונך.
הערה: הודעתך דרושה לאישור הנהלה לפני הצגתה.

אורח
הוספת תגובה

×   הדבקה כטקסט עשיר.   הדבקה כטקסט רגיל במקום

  מאושרים אך ורק 75 סמייקונים.

×   הקישור שלך מוצמד אוטומטית.   הצגה כקישור במקום

×   תוכן הקודם שלכם שוחזר.   ניקוי עורך

×   You cannot paste images directly. Upload or insert images from URL.

טוען...
×
×
  • יצירת חדש...