תרגיל 005 מתוך אוסף תרגילים ב #C מומלץ למתכנתי NET. מתחילים המתכוננים להצלחה בבחינות ובראיונות עבודה כולל הכנה למבחני מיון ליחידת 8200 , ממר"מ , יחידת ראם (השב"כ) ועוד. תרגיל זה מיועד לאימון ותרגול ויש לבצע אותו בהתאם ללוח הזמנים המותאם לתרגיל זה ולחזור על התרגול עד לרמת שליטה מלאה בקוד.
תרגיל מס' 005 תכנית עבור תרגול בסיסי בפולימורפיזם
צור תכנית אשר מגדירה מערך מטיפוס אבסטרקטי מסוג Person הכולל את המתודה Hello.
הגדר עוד שתי מחלקות (class) אחת מסוג Student והשנייה מסוג Worker היורשות
מהמחלקה Person.
הוסף למחלקה Worker מתודה ייחודית בשם getWrkID המדפיסה למסך מספר קבוע,
עבור המתודה Hello יש לממש אותה באופן שונה עבור כל מחלקה בכדי לקבל מימוש ע"פ
טיפוס המחלקה שממנה נוצר האובייקט.
!TIP
יש להשתמש באופרטור IS בכדי לברר מתי כדאי לבצע casting עבור טיפוס מסוג Worker
בכדי לגשת אל המתודה הייחודית ל Worker.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
using System;
namespace DoronAmir
{
public abstract class Person
{
public virtual void Hello()
{
Console.WriteLine("Hello Person ");
}
}
public class Student : Person
{
public override void Hello()
{
Console.WriteLine("Hello Student ");
}
}
public class Worker : Person
{
public override void Hello()
{
Console.WriteLine("Hello Worker");
}
public void getWrkID()
{
Console.WriteLine(" Worker ID 123 ");
}
}
public class MyClass
{
public static void Main()
{
Person[] arr = new Person[4];
arr[0] = new Student();
arr[1] = new Worker();
arr[2] = new Student();
arr[3] = new Worker();
foreach (Person p in arr)
{
p.Hello();
if (p is Worker)
{
((Worker)p).getWrkID();
}
Console.WriteLine("-----------------------------");
}
}
}
}
|
|