Difference between revisions of "6236 Programmering I Agenda/Inheritance"

From Teknologisk videncenter
Jump to: navigation, search
Line 26: Line 26:
 
Opsparing k = new Opsparing(25000);
 
Opsparing k = new Opsparing(25000);
 
k.oplysSaldo();
 
k.oplysSaldo();
 +
}
 +
</source>
 +
 +
<source lang=csharp>
 +
class Konto
 +
{
 +
...
 +
virtual public void haev()
 +
{
 +
System.Console.WriteLine("Hvor meget vil du hæve?");
 +
Double beloeb = Convert.ToDouble(System.Console.ReadLine());
 +
saldo = saldo - beloeb;
 +
}
 +
....
 +
}
 +
 +
 +
class Opsparing : Konto
 +
{
 +
....
 +
public override void haev()
 +
{
 +
if (DateTime.Now > friDato)
 +
{
 +
base.haev();
 +
}
 +
else
 +
{
 +
System.Console.WriteLine("Der kan ikke hæves fra kontoen før " + friDato);
 +
}
 +
}
 +
}
 +
 +
 +
class Program
 +
{
 +
static void Main(string[] args)
 +
{
 +
//Her laves en ny variable af type Konto
 +
Opsparing k = new Opsparing(25000);
 +
k.friDato = new DateTime(2020, 1, 1);
 +
k.oplysSaldo();
 +
k.haev();
 +
}
 
}
 
}
 
</source>
 
</source>

Revision as of 15:15, 30 November 2015

En meget brugt ting i objektorienteret programmering er muligheden for at arve fra andre klasser.

Lad os antage at vi har fået en ny type af konto der kan spærres for hævninger indtil en bestemt dato.

Det kan vi gøre ved at oprette en ny Class der har attributten friDato og arver fra Konto. Derved får vi en klasse der kan alt som Konto kan, plus det der er tilføjet i den nye klasse.

class Opsparing : Konto
{
	//fri Dato angiver hvornår pengene kan hæves fra
	public DateTime friDato;

	//Konstruktøren tager saldo som parameter på samme måde og sender input direkte videre til base (Konto).
	public Opsparing(double saldo):base (saldo)
	{

	}
}

I main anvendes klassen på samme måde som Konto

static void Main(string[] args)
{
	//Her laves en ny variable af type Konto
	Opsparing k = new Opsparing(25000);
	k.oplysSaldo();
}
class Konto
{
	...
	virtual public void haev()
	{
		System.Console.WriteLine("Hvor meget vil du hæve?");
		Double beloeb = Convert.ToDouble(System.Console.ReadLine());
		saldo = saldo - beloeb;
	}
	....
}


class Opsparing : Konto
{
	....
	public override void haev()
	{
		if (DateTime.Now > friDato)
		{
			base.haev();
		}
		else
		{
			System.Console.WriteLine("Der kan ikke hæves fra kontoen før " + friDato);
		}
	}
}


class Program
{
	static void Main(string[] args)
	{
		//Her laves en ny variable af type Konto
		Opsparing k = new Opsparing(25000);
		k.friDato = new DateTime(2020, 1, 1);
		k.oplysSaldo();
		k.haev();
	}
}