Java - abstract class methods
-
Upload
tomer-zait -
Category
Documents
-
view
505 -
download
0
description
Transcript of Java - abstract class methods
![Page 1: Java - abstract class methods](https://reader036.fdocuments.us/reader036/viewer/2022082512/5538ec0b4a79593a698b48c9/html5/thumbnails/1.jpg)
מופשטות ) ופונקציות (Abstractמחלקות
Tomer Zait
![Page 2: Java - abstract class methods](https://reader036.fdocuments.us/reader036/viewer/2022082512/5538ec0b4a79593a698b48c9/html5/thumbnails/2.jpg)
מושגים: ) אבסטרקטית ) מופשטת מחלקה
. ממומשת לא בה אחת פונקציה לפחות אשר מחלקה ) את ) לממש לנו מאפשרת פונקציה של חתימה ממומשת לא פונקציה
הפונקציה. שלנו מהמחלקה היורשות המחלקות לכל המתאימה בצורה
, למוצר מחיר לחשב אמורה שלנו הפונקציה כאשר, המחיר - חישוב של שונה סוג להיות יכול מוצר בכל בעיה לנו להיווצר יכולה
. זו לבעיה פתרון לתת באה האבסטרקטית המחלקה
והמשתנים מהפונקציות חלק כאשר נכון יהיה מופשטת במחלקה שימושמתאימים
. שלנו מהמחלקה יורשות אשר המחלקות לכל
כותבים אנו מונפשת מחלקה על להכריז .abstract בשבילב משתמשים אנו ממנה לרשת . extendsובשביל
![Page 3: Java - abstract class methods](https://reader036.fdocuments.us/reader036/viewer/2022082512/5538ec0b4a79593a698b48c9/html5/thumbnails/3.jpg)
:) אינטרספייס ) ממשק. מחלקות כמה בין המקשר חוזה כמו הוא ממשק
) המאפשרות ) פונקציות של חתימות ממומשות לא פונקציות ישנן בממשקלנו
על חתומות אשר המחלקות לכל המתאימה בצורה הפונקציות את לממשחוזה
. הממשק עם
בפרוצדורות לפעול צריכות הפונקציות כל כאשר נכון יהיה בממשק שימוששונות,
. , וכו שונות בצורות פועלות אובייקטים של שונים סוגים מקבלות כלומר
כותבים אנו מונפשת מחלקה על להכריז .interface בשבילב משתמשים אנו חוזה על איתה לחתום . implementsובשביל
![Page 4: Java - abstract class methods](https://reader036.fdocuments.us/reader036/viewer/2022082512/5538ec0b4a79593a698b48c9/html5/thumbnails/4.jpg)
והסברים דוגמאות: דוגמא מופשטת מחלקה
public abstract class Toy { protected String name; protected double basePrice;
public Toy(String name, double basePrice) { this.name = name; this.basePrice = basePrice; }
public abstract double ComputePrice();
public void ChangeBasePrice(double percent) { this.basePrice += (this.basePrice * percent) / 100; {{
![Page 5: Java - abstract class methods](https://reader036.fdocuments.us/reader036/viewer/2022082512/5538ec0b4a79593a698b48c9/html5/thumbnails/5.jpg)
: הסבר מופשטת מחלקהישנן שראינו , 2במחלקה אינה מהן ואחת אבסטרקטית מהן אחת פונקציות
אבסטרקטית.
מופשטת ) שאינה עובדת( ChangeBasePriceבפונקציה אשר פעולה ישנהבדיוק
שלנו ) מהמחלקה יורשות אשר המחלקות בכל צורה (.Toyבאותה
המופשטת ) שונות( ComputePriceבפונקציה בצורות עובדת אשר פעולה ישנהשלנו ) מהמחלקה יורשת אשר מחלקה (.Toyבכל
![Page 6: Java - abstract class methods](https://reader036.fdocuments.us/reader036/viewer/2022082512/5538ec0b4a79593a698b48c9/html5/thumbnails/6.jpg)
: דוגמא ממשק
interface Shape{ public String baseClass = "Shape";
public void Draw;)(}
: הסבר ממשקשלנו .Shapeהחוזה הקיימות הצורות כל בין לקשר נועד
ה פונקציית את שונה בצורה לממש תוכל צורה (.Drawכל ציור )
\ , חפצים למיון ממשק לכתוב אפשר למשל ירושה עם הדוק קשר אין לממשק. ועוד\ חיות אנשים
. דבר מהשני אחד יורשים אינם ואלו
![Page 7: Java - abstract class methods](https://reader036.fdocuments.us/reader036/viewer/2022082512/5538ec0b4a79593a698b48c9/html5/thumbnails/7.jpg)
מופשטת למחלקה ממשק בין ההבדלים
•. יש מופשטת ולמחלקה ירושה עם הדוק קשר אין לממשק
מופשטת • ולמחלקה ממומשות לא להיות חייבות הפונקציות כל בממשק
. להיות חייבת אחת רק
עם • משתמשים עם implements בממשק משתמשים מופשטת ובמחלקה
extends.
עם • ממשק על עם interfaceמכריזים מכריזים מופשטת מחלקה ועל
abstract.
לחתום • יכולות מחלקות וכמה מחלקות כמה עם חוזה לחתום יכול ממשק
. אחת, ממחלקה לרשת אפשר כלומר מחלקה היא מופשטת מחלקה הסואיתוף