Diverse Frag zu Vererbung innerhalb von Java

java__neuling

Aktives Mitglied
Hallo,

ich bins schon wieder und habe hier diverse fragen zur vererbung.

ich hoffe, es ist okay wenn ich immer einen codeschnipsel hier reinkopiere und erkläre was ich darunter verstehe und ihr sagt mir dann einfach ob es richtig ist oder falsch. wenn meine aussagen falsch sein sollten, wäre es natürlich toll wenn ihr mir sagt wie es richtig zu verstehen ist.

Java:
public class blabal1 extends blabla2{

Noch relativ einfach, die Klasse blanla1 erbt die variabeln und methoden der klasse blabla2, richtig?



Java:
public blabla1(double a, double b, double hund, double katze)
{
	super(a,b); 

	bla1 = hund;
	bla2= katze;

}

hier wird der konstruktor der klasse blabla1 aufgerufen.

innerhalb des konstruktors wird auf die variablen a und b der superklasse also blabla2 zugegriffen, oder?
was aber letzentlich mit den variablen passiert weiß ich auch nicht. normlerweise müsste doch eine
art wertezuweisnung statt finden, oder?

außerdem wird den variablen bla1 und bla2 der wert hund bzw. katze zugeordnet.
die variablen bla1 und bla2 sind innerhalb der klasse blabla1 deklariert.

so habe zwar noch weitere fragen aber dass reicht erstmal!

vielen dank schon einmal und gruß 🙂
 
innerhalb des konstruktors wird auf die variablen a und b der superklasse also blabla2 zugegriffen, oder?
was aber letzentlich mit den variablen passiert weiß ich auch nicht. normlerweise müsste doch eine
art wertezuweisnung statt finden, oder?

außerdem wird den variablen bla1 und bla2 der wert hund bzw. katze zugeordnet.
die variablen bla1 und bla2 sind innerhalb der klasse blabla1 deklariert.

so habe zwar noch weitere fragen aber dass reicht erstmal!

vielen dank schon einmal und gruß 🙂

wird auch gemacht, den membervariablen der super-klasse werden die werte a und b übertragen.. bla1 udn bla2 bleiben in blabla1. obwohl eigentlich ja alles in blabla1 bleibt, da blabla 1 ja alles aus blabla2 und seine eigenen variablen enthält
 
Java:
public class blabal1 extends blabla2{
Noch relativ einfach, die Klasse blanla1 erbt die variabeln und methoden der klasse blabla2, richtig?
nicht wenn diese in der oberklasse als private oder static sind

Java:
public blabla1(double a, double b, double hund, double katze)
{
	super(a,b); 

	bla1 = hund;
	bla2= katze;

}
innerhalb des konstruktors wird auf die variablen a und b der superklasse also blabla2 zugegriffen, oder?
nein hier werden einfach die Paramter a,b an den Konstruktor der Oberklasse weitergegeben

was aber letzentlich mit den variablen passiert weiß ich auch nicht. normlerweise müsste doch eine
art wertezuweisnung statt finden, oder?
wenn du den Code nicht zur Hand hast kannst du nur auf die API doc setzen... nix annehmen ;-)
 
alter schwede weiviele mitlgieder hat das forum hier ihr antwortet fast zu jeder uhrzeit extrem schnell.
das find ich gut danke erstmal dafür 😀

Java:
super(a,b);

ich bin immer davon ausgegangen, dass in diesem fall die variablen a und b in der superklasse definiert sein müssen. weil wenn ich kann ja auch zum beispiel schreiben

Java:
super(a) = katze

oder geht das nicht. und wenn ich schreibe "super(a) = katze" bedeutet das doch, dass der variablen
a aus der superklasse blabla2 der wert katze zugwiesen wird, oder nicht?
 
Java:
super(a) = katze

oder geht das nicht. und wenn ich schreibe "super(a) = katze" bedeutet das doch, dass der variablen
a aus der superklasse blabla2 der wert katze zugwiesen wird, oder nicht?
Schon mal ausprobiert das zu kompilieren. super(...) bezieht sich immer auf einen Konstruktor der Superklasse, da ist nichts mit Zuweisung.
 
alter schwede weiviele mitlgieder hat das forum hier ihr antwortet fast zu jeder uhrzeit extrem schnell.
nur zuviele die a) keinen job haben oder b) in ihrem gelangweilt sind.

Java:
super(a,b);

ich bin immer davon ausgegangen, dass in diesem fall die variablen a und b in der superklasse definiert sein müssen.
nein... bsp
Java:
public class Oberklasse {
  private int foo;
  
  public Oberklasse(int f) {
     foo = f;
 }
}

public class Unterklasse extends Oberklass {
   public Unterklasse(int b) {
      super(bar);
   }
}
Parameternamen sind schall und rauch. der super aufruf ruft einfach mit dem Parameter den entsprechenden Konstruktor in der Oberklasse auf, egal wie die dort heißen.


weil wenn ich kann ja auch zum beispiel schreiben

Java:
super(a) = katze

oder geht das nicht. und wenn ich schreibe "super(a) = katze" bedeutet das doch, dass der variablen
a aus der superklasse blabla2 der wert katze zugwiesen wird, oder nicht?
nein... super ist ein rückgabeloser aufruf, da kommt nix zurück.

in meinem oberen bsp: foo ist private in Oberklasse, es müsste eine methode geben getFoo(), nur dann könnte Unterklasse über den Methodenaufruf rankommen. Wäre foo protected, so könnte die unterklasse direkt über [c]foo[/c] an die Variable ran
 

Zurück
Oben