26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4. skriv en set del i propertyen CPR som kontrollerer/reagerer på det som er tastet ind/ det som<br />

propertyen er sat til! Fx ved vi hvor mange tegn der er i CPR nummer!<br />

Eksempler på Polymorfisme og Arv:<br />

Formålet med at en klasse ‘arver’ fra en anden er at genbruge den funktionalitet som allerede ligger<br />

i en basis-klasse og at skabe hierarkier af klasser som er logiske og overskuelige. I C# kan er klasse<br />

kun arve fra en klasse, en klasse kan kun have en enkelt base class. (Men kan implementere mange<br />

interfaces som vi skal se). Men en basis klasse kan have mange efterkommere – nedarvede klasser<br />

eller ’børn’.<br />

Arv erklæres meget nemt således i C#:<br />

public class Rektangel: Figur{}<br />

Kolon angiver altid arv – Rektangel arver fra Figur eller sagt i almindeligt sprog: ’Et rektangel er<br />

en figur!’.<br />

Her er et meget enkelt eksempel på hvordan arv kan kodes i C#:<br />

//fil: arv.cs<br />

//illustrerer på enkel måde arv i C#<br />

//af nemheds grunde er alle klasser her anbragt i samme fil arv.cs<br />

//postcondition: outputter data om objekter<br />

using System;<br />

public class Figur{<br />

}<br />

//protected og ej private da de skal bruges af arve-klasser:<br />

protected string navn;<br />

protected string id;<br />

public Figur(string n){navn=n;id="Figur";}<br />

//netode som nedarves:<br />

public void vis(){<br />

Console.WriteLine("Objektet er {0} og navnet er {1}",id,navn);<br />

}<br />

public class Rektangel: Figur{<br />

//NB navn og id er nedarvede automatisk<br />

private int side1,side2;<br />

}<br />

public Rektangel(string n,int s1,int s2):base(n){<br />

id="Rektangel";<br />

side1=s1;side2=s2;<br />

}<br />

//NB vis() er nedarvet automatisk

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!