Ich schon wieder,
hab folgendes Problem mit dem Beispiel aus dem Buch "Handbuch der ...".
Soweit ich verstanden habe handelt es sich beim Polymorphismus um die Fähigkeit Methoden aus abgeleitet Klassen aufzurufen, solange sie in der Basis klasse schon doe passende abstrakte Methode enthält.
Schön und gut das klapp auch nur wie sieht es mit Variabeln aus? Nun zum Beispiel(habs der übersicht weise gekürzt)
Das aufrufen einer methode ist ja kein Problem(ist ja schon in der Klasse mitarbeiter definiert) doch wie bekomme ich es jetzt hin, dass die Variabeln von der Klasse Manger ausgefüllt werden (das Objekt ma[0] ist ja eigentlich vom Typ Mitarbeiter und nicht Manager) und bei der Berechnung eben auf genau diese zugegriffen wird.
Danke
hab folgendes Problem mit dem Beispiel aus dem Buch "Handbuch der ...".
Soweit ich verstanden habe handelt es sich beim Polymorphismus um die Fähigkeit Methoden aus abgeleitet Klassen aufzurufen, solange sie in der Basis klasse schon doe passende abstrakte Methode enthält.
Schön und gut das klapp auch nur wie sieht es mit Variabeln aus? Nun zum Beispiel(habs der übersicht weise gekürzt)
Code:
/* Gehaltsberechnung.java */
import java.util.Date;
abstract class Mitarbeiter
{
public Mitarbeiter()
{
}
public abstract double monatsBrutto();
}
class Manager
extends Mitarbeiter
{
double fixgehalt;
public double monatsBrutto()
{
return fixgehalt
}
}
public class test
{
private static final int ANZ_MA = 1;
private static Mitarbeiter[] ma;
private static double bruttosumme;
public static void main(String[] args)
{
ma = new Mitarbeiter[ANZ_MA];
//Mitarbeiter-Array füllen, z.B.
ma[0] = new Manager();
ma[0].fixgehalt = 100 //Hier steckt das Poblem. weiter Kommentar nach dem Quell text
//Bruttosumme berechnen
bruttosumme = 0.0;
for (int i=0; i<ma.length; ++i) {
bruttosumme += ma[i].monatsBrutto();
}
System.out.println("Bruttosumme = "+bruttosumme);
}
}
Das aufrufen einer methode ist ja kein Problem(ist ja schon in der Klasse mitarbeiter definiert) doch wie bekomme ich es jetzt hin, dass die Variabeln von der Klasse Manger ausgefüllt werden (das Objekt ma[0] ist ja eigentlich vom Typ Mitarbeiter und nicht Manager) und bei der Berechnung eben auf genau diese zugegriffen wird.
Danke