Method undefinded for "Klasse"

  • Themenstarter Themenstarter Samuel
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

Samuel

Gast
Also ich bin kein Anfänger im Programmieren, aber ein Anfängerin Java.
Ich habe eine Klasse
Mitarbeiter und ich habe eine Klasse ExtMitarbeiter, die von Mitarbeiter erbt.
Groß aussehen tuts so:
Code:
public class Mitarbeiter {
	//Variablen;
	String name;
	String abtl;
	Fahrt dienstF = null;
//Konstruktoren usw
}

Code:
public class ExtMitarbeiter extends Mitarbeiter{

	public boolean unterwegs(){
		return dienstF==null?false:true;
	}


}
Im Grunde hab ich nur Mitarbeiter um get und set Methoden der Variablen erweitert
(Ich weiß, die Variablen sind hier ja noch public, aber Kapselung hatte mein Prof nicht, also muss ich publich nehmen 🙁 )

Nun hab ich eine Fuhrpark Klasse mit main:
Code:
public class Fuhrpark {
	//Erweiterung, weil Getties und Setties fehlen
	ExtMitarbeiter[] m = new ExtMitarbeiter[1];

	
	public Fuhrpark(){
		//Anlegen der Daten
		m[0] = new ExtMitarbeiter("Mueller","E");
		
		
	}
	
	public static void main(String[] args){
		//Zuerst eine Fuhrparkinstanz
		Fuhrpark fp = new Fuhrpark(); //Konstruktor aufrufen;
		//Interface einbauen, auswahl der Leute und Autos variabel
		
		optionen(0,fp);
		
	}
	public static void print(String str, boolean ln){
		if (ln){
		System.out.println(str);
		}else {
		System.out.print(str);	
		
		}
		
	}
	
	public static void optionen(int u, Fuhrpark fp){
		
		if (fp.m[u].unterwegs())  //<----------------- Fehler

	}
}

Das ist eigentlich ganz simpel, aber ich bekomme:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method unterwegs() is undefined for the type Mitarbeiter

at Fuhrpark.optionen(Fuhrpark.java:48)
Nun weiß ich garnicht, was der von mir will, Datentyp m ist ja kein Mitarbeiter, sondern ExtMitarbeiter, welcher die Methode unterwegs kennen sollte, aber er tut es nicht, obwohl ich hier keinmal Mitarbeiter irgendwohin zuweise
 
Vorerst: ein ExtMitarbeiter ist immer auch ein Mitarbeiter (Vererbung !).
Ich bekomme allerdings kein Fehler:
Code:
/*
 * Fuhrpark.java
 */
package schnipsel;
public class Fuhrpark {
    public Fuhrpark() {
        //Anlegen der Daten
        m[0] = new ExtMitarbeiter("Mueller","E");
    }
    public static void print(String str, boolean ln){
        if (ln){
            System.out.println(str);
        }else {
            System.out.print(str);
        }
    }
    public static void optionen(int u, Fuhrpark fp){
        if (fp.m[u].unterwegs())  //<----------------- Fehler
            System.out.println("unterwegs");
        else
            System.out.println("nicht unterwegs");
    }
    public static void main(String[] args){
        //Zuerst eine Fuhrparkinstanz
        Fuhrpark fp = new Fuhrpark(); //Konstruktor aufrufen;
        //Interface einbauen, auswahl der Leute und Autos variabel
        optionen(0,fp);
    }
    //Erweiterung, weil Getties und Setties fehlen
    ExtMitarbeiter[] m = new ExtMitarbeiter[1];
}
class Mitarbeiter {
    //Variablen;
    String name;
    String abtl;
    Fahrt dienstF = null;
//Konstruktoren usw
}
class ExtMitarbeiter extends Mitarbeiter{
    public ExtMitarbeiter(String s1, String s2){
    }
    public boolean unterwegs(){
        return dienstF==null?false:true;
    }
}
class Fahrt{
}
 
Das ist es ja, Eclipse ist auch ganz friedlich, ich kann es auch starten, wenn ich aber bis zu der Stelle komme, krieg ich den Compiler Fehler und eben nicht sofort
 
Ja, das war es, habs noch vorhin selber getestet, dämliches Ding, normalerweise klappt sowas doch problemlos.

Aber danke für die Hilfe 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben