FAGPORTALEN

OOP — klasser, arv, polymorfi, enkapsulering

It A · STX · A-niveau · Avanceret programmering

💻 OOP — klasser, arv, polymorfi, enkapsulering

Objektorienteret programmering (OOP) er et programmeringsparadigme der organiserer kode som objekter med data (attributter) og adfærd (metoder). Klasser er skabeloner; objekter er instanser. De fire OOP-principper: Indkapsling (Encapsulation): data og metoder pakkes i en klasse; private/protected/public adgangsniveauer styrer hvad der er synligt udefra.

Nedarvning (Inheritance): en underklasse arver fra en superklasse og kan overskrive (override) metoder. Eksempel: class Cykel(Køretøj) arver Køretøj's max_speed.

Polymorfi (Polymorphism): samme metodenavn opfører sig forskelligt i underklasser. Eksempel: dyr.lyd() returnerer "Vov" for Hund og "Miav" for Kat.

Abstraktion (Abstraction): skjul implementeringsdetaljer, eksponer kun nødvendige grænseflader. Abstrakte klasser og interfaces.

Design patterns: Factory, Singleton, Observer, Decorator (Gang of Four).

Python-eksempel:

```python

class Animal:

def __init__(self, name): self.name = name

def speak(self): raise NotImplementedError

class Dog(Animal):

def speak(self): return f"{self.name}: Vov!"

class Cat(Animal):

def speak(self): return f"{self.name}: Miav!"

animals = [Dog("Fido"), Cat("Misser")]

for a in animals: print(a.speak())

```

SOLID-principperne: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion — grundlæggende for god OOP-arkitektur.

Læringsmål

Sådan kan du arbejde med emnet

Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.