PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : qqVerebungs-/Konstruktorfrage



sauertopf
17-09-2003, 11:05
Hallo,

es sieht für mich so aus als könne man in einer Subclasse kein Object der Superklasse erzeugen, wenn diese einen anderen als den default-construktor hat.

Ist es so oder verstehe ich was falsch? warum ist das so?



public class B extends A
{
public void test(int argc, String argv[])
{
A a=new A("Hallo");
}
}

class A
{
String a;
A(String s)
{
a=s;
}
}

sauertopf
17-09-2003, 11:08
Ach ja, die Fehlermeldung:



B.java:1: cannot resolve symbol
symbol : constructor A ()
location: class A
public class B extends A{
^
1 error

sauertopf
17-09-2003, 11:12
Ok, hab die Lösung.
Hatte gar nix mit der Instanzierung zu tun ...



public class B extends A{
public void test(int argc, String argv[]){
A a= new A("Hallo");
}

B(String d){
super(d);
}
}

class A{
String a;
A(String s){
a=s;
}
}

fs111
17-09-2003, 17:00
Du solltest Dir unbedingt angewöhnen getter und setter zu schreiben, das ist in Java erstens so üblich, und zweitens auch besser vom OO-Ansatz.

fs111

sauertopf
17-09-2003, 18:19
@fs111: etwa so?


public class B extends A{
public void test(){
A a= new A("Hallo");
}

B(String d){
super(d);
}
}

class A{
private String a;
public void set_a(String a_s){a=a_s;}
A(String s){
set_a(s);
}
}

anda_skoa
17-09-2003, 18:22
Innerhalb der Klasse kannst du schon direkt auf die Variablen schreiben, besonders im Konstruktor :)

Ciao,
_