---
# System prepended metadata

title: 'Programmering 2: Övningar arv'
tags: [övningsuppgifter]

---

# Programmering 2: Övningar arv

1. **Lärare och elev**

Skapa en grundklass `Person` med attribut som namn och ålder. Utvidga denna klass för att skapa två subklasser: `Student` och `Teacher`. Lägg till egenskaper specifika för varje underklass, som årskurs för `Student` och ämne för `Teacher`. Skapa instanser av varje klass och skriv ut deras detaljer.

2. **RPG Karaktärer**

Skapa en grundklass `Character` med attribut som namn, hälsa och nivå. Utvidga denna klass för att skapa specifika karaktärsklasser som `Warrior`, `Wizard` och `Rouge`. Varje klass bör ha unika attribut (till exempel armor för Warrior och mana för Wizard) och metoder som printar vad de gör (till exempel MeleeAttack, CastSpell och ShootBow). Skapa instanser av varje klass och anropa deras respektive metoder.

3. **Former** 

Skapa en grundklass `Shape` med attributet färg. Utvidga denna klass för att skapa subklasser för specifika former: `Circle`, `Rectangle` och `Triangle`. Implementera metoder för att beräkna arean för varje form. Skapa objekt av varje form, beräkna och skriv ut storleken på deras areor.

4. **Frågesportsspel**

Bygg ett litet frågesportsspel som ställer frågor och kollar om man svarar rätt. Programmet ska använda sig av en superklass `Question` som innehåller:
* En string för frågan
* En string för korrekt svar
* En metod `PrintQuestion()` som skriver ut frågan.
* En metod `bool CheckAnswer(string answer)` som returnerar sant om `answer`  är korrekt och falskt om det är fel.

Skapa sedan följande subklasser till `Question`:
* `MultipleChoiceQuestion` som overidar `PrintQuestion` och skriver ut svarsalternativ
* `YesNoQuestion` som man bara kan svara "yes" eller "no" på.
* `NumberQuestion` som man bara kan svara med en siffra, och korrekt svar är inom ett givet intervall.
* Fler subklasser om du kan komma på fler varianter på quiz-frågor.
