4050 Abstrakta klasser - Sak
Lärandemål
- Känna till skillnaden mellan en abstrakt klass och en vanlig klass.
- Kunna använda nyckelord
abstract
ochoverride
på avsett vis.
Genomgång
Be din lärare att berätta om abstrakta klasser. Visas med hjälp av klassen Animal.
Klassen Animal från tidigare
class Animal
{
protected int age;
public Animal(int anAge)
{
age = anAge;
}
public void Act()
{
Console.WriteLine("okänt ljud");
}
}
Klassen Animal med arv
Jämför koden ovan med den nedan. Ser du skillnaderna? Ordet abstract
har lagts till på två ställen.
Objekt kan ej göras av abstrakta klasser.
Abstrakta metoder har ingen kropp. Metoden måste implementeras i ärvande klasser.
abstract class Animal
{
protected int age;
public Animal(int anAge)
{
age = anAge;
}
public abstract void Act();
}
Klassdiagrammet ser ut som följer.
Klassen Cat
Klassen Cat
nedan passar ihop med klassen Animal
ovan.
class Cat : Animal
{
public override void Act()
{
Console.WriteLine("mjau");
}
}
Din uppgift
Skriv om klassen Sak
så att den blir en abstrakt klass. Det ska inte gå att skapa objekt av klassen Sak
. Kanske behöver du skriva om de andra klasserna lite också.