@startuml
'https://plantuml.com/class-diagram

abstract class Turnering
class Main
class Hold
class KnockoutTurnering
class PointTurnering
class Kamp

Main *-- Turnering
Turnering <|-- KnockoutTurnering
Turnering<|-- PointTurnering
KnockoutTurnering o-- "16.." Hold
PointTurnering o-- "16.." Hold
Turnering o-- Kamp
Kamp o-- "2" Hold


class Main {
IndlæsData()
}
class Kamp{
- int kampLængde
- int kampID
- Hold[2] holdKamp
- int[2] resultat
+ findVinder()
}

class Hold{
- int points
- String holdNavn
- int antalSpillere
- int holdID
- int målScore
+ getPoints()
+ setPoints()
+ toString()

}
abstract class Turnering{
- Arraylist<Hold>holdListe
+ {abstract}opretTurnering()
+ {abstract}læsHoldData()
+ {abstract}fjernOverskud()
+ {abstract}opsætKamp()
+ {abstract}opdaterMålScore()
+ {abstract}opdaterKampScore()
}
class KnockoutTurnering{
- int nuværendeKamp
- Arraylist <Kamp> kampOpsættelse
- Arraylist <Hold> holdListe
+ læsHoldData()
+ fjernOverskud()
+ opsætKamp()
}
class PointTurnering{
- int nuværendeKamp
+ læsHoldData()
+ fjernOverskud()
+ opsætKamp()
}


@enduml