Object Oriented Programming for All

Beispiel einer Abstrakten Klasse

abstract class Sort { long Root DataPointer protected makeRoot() { root=makeEntry() } abstract public makeEntry() abstract public insertItem(value) abstract public deleteItem(value) abstract public getFirstItem() abstract public getNextItem() abstract public displayList() } Class VerketteListe extends Sort { public makeEntry() { long mem mem=new("ListEntry",0) return mem } public insertItem(long value) { Object Entry Entry=getLastItem(Root) Entry.AddEntry(value) } ... } Class BinärerBaum extends Sort { public makeEntry() { long Entry Entry=new("BinTreeEntry",0) return Entry } public insertItem(long value) { Object Entry SortInTree(Root,Value) } ... } Wie man jetzt gut sehen kann haben alle abgeleiteten Objecte dieselben Methoden und MethodenArgumente, aber konkret andere Implementierungen. Zur Laufzeit eines Programms kann man sich aussuchen welchen Sortieralgorithmus man benutzen will, ohne das beim Programmieren schon festzulegen. Der User könnte in einem Prefsfile angeben welche konkrete Sortiermethode er benutzen will. So können Implementierungen auch nachträglich verbessert werden ohne alles neu zukompilieren.
zurück zum Index 1