Java - abstract class methods

7
תתתתתת תתתתתתתתת תתתתתתת( Abstract ) Tomer Zait

description

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

Transcript of Java - abstract class methods

Page 1: Java - abstract class methods

מופשטות ) ופונקציות (Abstractמחלקות

Tomer Zait

Page 2: Java - abstract class methods

מושגים: ) אבסטרקטית ) מופשטת מחלקה

. ממומשת לא בה אחת פונקציה לפחות אשר מחלקה ) את ) לממש לנו מאפשרת פונקציה של חתימה ממומשת לא פונקציה

הפונקציה. שלנו מהמחלקה היורשות המחלקות לכל המתאימה בצורה

, למוצר מחיר לחשב אמורה שלנו הפונקציה כאשר, המחיר - חישוב של שונה סוג להיות יכול מוצר בכל בעיה לנו להיווצר יכולה

. זו לבעיה פתרון לתת באה האבסטרקטית המחלקה

והמשתנים מהפונקציות חלק כאשר נכון יהיה מופשטת במחלקה שימושמתאימים

. שלנו מהמחלקה יורשות אשר המחלקות לכל

כותבים אנו מונפשת מחלקה על להכריז .abstract בשבילב משתמשים אנו ממנה לרשת . extendsובשביל

Page 3: Java - abstract class methods

:) אינטרספייס ) ממשק. מחלקות כמה בין המקשר חוזה כמו הוא ממשק

) המאפשרות ) פונקציות של חתימות ממומשות לא פונקציות ישנן בממשקלנו

על חתומות אשר המחלקות לכל המתאימה בצורה הפונקציות את לממשחוזה

. הממשק עם

בפרוצדורות לפעול צריכות הפונקציות כל כאשר נכון יהיה בממשק שימוששונות,

. , וכו שונות בצורות פועלות אובייקטים של שונים סוגים מקבלות כלומר

כותבים אנו מונפשת מחלקה על להכריז .interface בשבילב משתמשים אנו חוזה על איתה לחתום . implementsובשביל

Page 4: Java - abstract class methods

והסברים דוגמאות: דוגמא מופשטת מחלקה

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

: הסבר מופשטת מחלקהישנן שראינו , 2במחלקה אינה מהן ואחת אבסטרקטית מהן אחת פונקציות

אבסטרקטית.

מופשטת ) שאינה עובדת( ChangeBasePriceבפונקציה אשר פעולה ישנהבדיוק

שלנו ) מהמחלקה יורשות אשר המחלקות בכל צורה (.Toyבאותה

המופשטת ) שונות( ComputePriceבפונקציה בצורות עובדת אשר פעולה ישנהשלנו ) מהמחלקה יורשת אשר מחלקה (.Toyבכל

Page 6: Java - abstract class methods

: דוגמא ממשק

interface Shape{ public String baseClass = "Shape";

public void Draw;)(}

: הסבר ממשקשלנו .Shapeהחוזה הקיימות הצורות כל בין לקשר נועד

ה פונקציית את שונה בצורה לממש תוכל צורה (.Drawכל ציור )

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

. דבר מהשני אחד יורשים אינם ואלו

Page 7: Java - abstract class methods

מופשטת למחלקה ממשק בין ההבדלים

•. יש מופשטת ולמחלקה ירושה עם הדוק קשר אין לממשק

מופשטת • ולמחלקה ממומשות לא להיות חייבות הפונקציות כל בממשק

. להיות חייבת אחת רק

עם • משתמשים עם implements בממשק משתמשים מופשטת ובמחלקה

extends.

עם • ממשק על עם interfaceמכריזים מכריזים מופשטת מחלקה ועל

abstract.

לחתום • יכולות מחלקות וכמה מחלקות כמה עם חוזה לחתום יכול ממשק

. אחת, ממחלקה לרשת אפשר כלומר מחלקה היא מופשטת מחלקה הסואיתוף