Vererbung Funktionsweise Code zur Vererbung

steffenw

Mitglied
Hallo,

folgende Aufgabenstellung:

Was gibt das folgende Programm aus, wenn es mit java Eins Zwei Drei aufgerufen wird?
public class Eins extends Zwei {
public Eins(){ System.out.println(8); }
public static void main(String [] args){
Eins eins = new Eins();
eins.zwei(args[0].length()).drei(args.length);
}
}

class Zwei extends Drei {
public Zwei zwei(int i){
System.out.println(i);
return this;
}
}

class Drei {
public Drei drei(int i){
System.out.println(i);
return this;
}
}

Lösung ist 842, aber wie genau kommt man da drauf was wird wann ausgegeben?
 
Code in Code-Tags setzen.

java Eins Zwei Drei -> Program Klasse Argumente
Die Klasse liegt in einer eigenen Datei die "Eins.class" heißt.
Die Argumente sind hier "Zwei" und "Drei"

Du kannst es auch so schreiben, dann sollte zumindest die Reihenfolge klar sein, oder?:
Java:
Eins eins = new Eins();
eins.zwei(args[0].length());
eins.drei(args.length);

8 - Ausgabe erfolgt Fest im Konstruktor, bei new Zwei(); wird nix ausgegeben
4 - args[0] ist "Zwei", ein String der Länge 4!
2 - args ist ein Array der Länge 2
 

Zurück
Oben