Pascal: Eine "Node" über ein "Tree" ansprechen - wie?

Hallo

Ich habe ein Klasse "Tree" und eine abgeleitete Klasse "Node". (Gibt sowas wie ein Treeview).

Bis jetzt kann man einen neuen Knoten so erzeugen und Childelemente hinzufügen:

Node node = new Node();
node.addChild(childnode1);
node.addChild(childnode2);

Ich möchte aber, dass die Klasse Node nicht direkt instanziert werden kann, sondern dass man immer über ein Treeobjekt auf die Node zugreifen muss, z.B. so:

tree.node.addChild(childNode1);

Wie muss man das machen?

Gruss Pascal

  1. Halihallo Pascal

    Ich möchte aber, dass die Klasse Node nicht direkt instanziert werden kann, sondern dass man immer über ein Treeobjekt auf die Node zugreifen muss, z.B. so:

    public abstract class Node {
      ...
    }

    public abstract class Tree extends Node {
      ...
    }

    tree.node.addChild(childNode1);

    Tree soll doch eine Erweiterung von Node sein, also:

    tree.addChild(childNode1);

    denn jeder tree _ist_ ein Node (einfach erweitert).

    Wie muss man das machen?

    Informiere dich über "abstract".

    Viele Grüsse

    Philipp

    1. Hallo

      Das habe ich gesucht! Danke!

      Gruss Pascal

  2. Hi,

    Ich möchte aber, dass die Klasse Node nicht direkt instanziert werden kann, sondern dass man immer über ein Treeobjekt auf die Node zugreifen muss, z.B. so:

    tree.node.addChild(childNode1);

    Wie verhindert dieser Ausdruck die _direkte_ (was immer das sein soll) Erzeugung der Node-Instanz, auf die der Parameter childNode1 zeigt?
    Beschreibe er doch bitte exakt, was er will (bzw. verhindern will).

    Viele Grüße,
    Martin Jung