יישום ירושה ופולימורפיזם בקוד אחדות

הטמעת ירושה ופולימורפיזם בקוד מאפשרת ליצור מחלקות מיוחדות יותר המבוססות על מחלקות קיימות, ולהתייחס לאובייקטים ממחלקות שונות כאובייקטים של מחלקת בסיס משותפת. זה מקדם שימוש חוזר בקוד, גמישות והרחבה. הנה דוגמה ליישום תורשה ופולימורפיזם ב-Unity:

יְרוּשָׁה

ירושה מושגת על ידי יצירת מחלקה חדשה (ילד או מחלקה נגזרת) המבוססת על מחלקה קיימת (מחלקה אב או בסיס). מחלקת הילד יורשת את התכונות והשיטות של מחלקת האב ויכולה להוסיף תכונות ושיטות ייחודיות משלה או לשנות את הקיימות. הנה דוגמה:

// Base class
public class Shape
{
    public virtual void Draw()
    {
        Debug.Log("Drawing a shape...");
    }
}

// Derived class
public class Circle : Shape
{
    public override void Draw()
    {
        Debug.Log("Drawing a circle...");
    }
}

בדוגמה זו, המחלקה 'Shape' היא המחלקה הבסיסית, והמחלקה 'Circle' נגזרת ממנה. השיטה 'Draw()' מוגדרת בשתי המחלקות, אך המחלקה 'Circle' עוקפת את השיטה כדי לספק יישום משלה. זה מאפשר לך להתמחות בהתנהגות של הכיתה 'Circle' תוך שמירה על ההתנהגות המשותפת המוגדרת בכיתה 'Shape'.

רב צורתיות

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

void DrawShapes(Shape[] shapes)
{
    foreach (Shape shape in shapes)
    {
        shape.Draw();
    }
}

// Usage
Shape[] shapes = new Shape[] { new Circle(), new Shape() };
DrawShapes(shapes);

בדוגמה זו, השיטה 'DrawShapes()' מקבלת מערך של אובייקטים 'Shape'. זה חוזר על המערך וקורא לשיטה 'Draw()' בכל אובייקט. המערך מכיל אובייקט 'Circle' ואובייקט בסיס 'Shape'. עם זאת, מכיוון שהמחלקה 'Circle' עוקפת את השיטה 'Draw()', היישום המתאים לכל אובייקט מופעל על סמך הסוג האמיתי שלו בזמן הריצה. זה מדגים פולימורפיזם בפעולה.

סיכום

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