Hier nun der W10. Der W10 ist eine vom dice abgeleitete Klasse. Schlüsselwort: extends. Da rollDice ja bekanntlich Zahlen zwischen 1-X liefert, können wir sie für den W10 nicht wirklich nutzen, außer wir subtrahieren vom Ergebniss immer 1 (allerdings nicht sehr schön). class dice10 extends dice { ist also eine neue Klasse, die dice10 heißt, von dice abgeleitet ist und ansonsten erstmal identisch mit der dice-Klasse ist. Sie beinhaltet sowohl die Klassenvariable $intMax als auch die function public function rollDice(). Da rollDice() uns hier nichts nützt, überladen wir die alte Funktion mit einer neuen, die genauso heißt, aber bei rand mit einer 0 anfängt! return(rand ( 0, $this->intMax ));
"überladen" bedeutet soviel wie 'die alte Funktion durch eine neue ersetzen'.
Deine neue Aufgabe besteht darin, einen W100 zu erstellen (liefert 0-9,0-9). Und bitte mache kein echo "W100:".$w10->rollDice().$w10->rollDice()
Sondern erstelle aus dem dice10 einen dice100 :-). Viel Spass.
Kleiner Tipp schau Dir mal den parent:: einer abgeleiteten Klassenfunction an.</p>

 class dice10 extends dice {
   public function rollDice() {
     return(rand ( 0, $this->intMax ));
   }
 }
 $w10=new dice10(9);
 echo "W10:".$w10->rollDice();

3. Teil

Hier nun der dice100. Er ist wie schon vermutet ein erweiterter dice10. Und wieder überladen wir die rollDice function und rufen 2 mal parent::rollDice() auf. Dieser liefert und dann einfach 2 mal einen Wert zwischen 0-9 die wir dann einfach mit dem Operator "." miteinander verküpfen - und schon haben wir einen w100 (00-99). Der parent::rollDice ist die rollDice function der Elternfunction also der dice10::rollDice.

 class dice100 extends dice10 {
   public function rollDice() {
     return(parent::rollDice().parent::rollDice());
   }
 }
 $w100=new dice100(9);
 echo "W:".$w100->rollDice();