לולאת for רצה על מערך של ג'אוה של המחלקה ההורה אבל האובייקטים של המחלקה ילד מפעילים כל אחד שיטה שונה
חן רון – אסטרטגיה של תלמידים מצטיינים
0:00 / 0:00
לולאת for רצה על מערך של ג'אוה של המחלקה ההורה אבל האובייקטים של המחלקה ילד מפעילים כל אחד שיטה שונה
138 просмотров · 4 года назад
חן רון – אסטרטגיה של תלמידים מצטיינים
411 подписчиков
138 просмотров · 4 года назад
פולימורפיזם בא לידי ביטוי בכך שבאותו מערך אנו שמים לכאורה אובייקטים של המחלקה ההורה. אבל במקרה שלנו המחלקה ההורה היא בכל אבסטרקטית ובכלל אי אפשר לעשות instantiation של אוביקטים מהמחלקה ההורה, כלומר במקרה שלנו המחלקה ההורה היא אבסטרקטית ואי אפשר, על כן, ליצור אובייקטים מהמחלקה ההורה. אז מה שבאמת יכיל המערך הזה, שהוא לכאורה מערך של אובייקטים מהסוג (ה-type) של המחלקה ההורה, זה בעצם אובייקטים של מחלקות הילד של אותה מחלקת הורה (בדוגמא שלנו מחלקות הילד של ההורה הן אינן אבסטרקטיות ועל כן ניתן ליצור מהן אובייקטים). מה שקורה זה שיצרנו איזושהי מתודה, שיטה, קראנו לה use() בדוגמא שלנו, והחלטנו שלכל אחד ממחלקות הילד יהיה ביטוי אחר של אותה שיטה, כלומר כל אחד ממחלקות הילד מכיל קוד שונה עבורה. ואז יצרנו לולאת for, כלומר for loop, שרצה על פני כל המערך, והחלטנו שבכל אובייקט ואובייקט במערך נקרא לשיטה הזו על כל אובייקט ואובייקט. אבל בגלל שלכל אחד ממחלקות הילד יש קוד אחר לאותה השיטה, אז כל פעם כשהלולאה תופעל על אחד האובייקטים אז בעצם ירוץ קוד אחר בתור הקוד של המתודה שקראנו להף למרות שיש להן את אותו שם מתודה. בכך בא לידי ביטוי פולימורפיזם במערכים בג'אוה.
הסרטון הוא בשפה עברית. הוא מכסה חומר שנלמד בקורס "מבוא למדעי המחשב ושפת תכנות ג'אוה ב'" שנלמד באוניברסיטה הפתוחה ובמוסדות אקדמיים נוספים.
We create an array that is suppose to include objects of the parent class, but the array actually includes objects of the child class, because in our example the parent class is abstract and therefore we may not instantiate objects from it anyways. So this array includes object of the child classes that are not abstract in our example. What we did is, that each child class has some method (they all had the same name) and each child class gave it a different code, a different content. Then, we created a "for loop", that run across all the objects in our array. On each iteration of the array the loop calls for the same method, but because each child class has a different code for that same method, than a different thing happens on each object. On each time the for loop calls this method, the code that is run is the code that is specific to that child object that is now being dealt with. This is polymorphism in arrays in Java.
This video is in the Hebrew language. It covers material related to the course Computer Science and Programming Language Java that is being taught in the Open University of Israel, and in other academic settings and establishments.