/*
 *
Created on 05.04.2004
 *
 * To
change the template for this generated file go to
 *
Window>Preferences>Java>Code Generation>Code and Comments
 */
package Methode_Klassen_etc;
/**
 *
@author MÜLLER
 *
 * To
change the template for this generated type comment go to
 *
Window>Preferences>Java>Code Generation>Code and Comments
 */
/*
Gehaltsberechnung.java */
import java.util.Date;
// eine
abstacte Klasse, von der andere Klassen abgeleitet werden sollen
abstract class Mitarbeiter {
   
int persnr;
   
String name;
   
Date eintritt;
   
public Mitarbeiter() {
   
}
   
// Diese Methode wird als abstract definiert, da sich je nach "Art des
Mitarbeiters", 
   
// das Monatsbrutto anders zusammensetzt
   
public abstract double monatsBrutto();
}
//
abgeleitete Klasse Arbeiter
class Arbeiter extends
Mitarbeiter {
   
double stundenlohn = 10;
   
double anzahlstunden = 160;
   
double ueberstundenzuschlag;
   
double anzahlueberstunden;
   
double schichtzulage;
   
public double monatsBrutto() {
   
    return stundenlohn * anzahlstunden
   
        + ueberstundenzuschlag *
anzahlueberstunden
   
        + schichtzulage;
   
}
}
//abgeleitete
Klasse Angestellter
class Angestellter extends
Mitarbeiter {
   
double grundgehalt = 1000;
   
double ortszuschlag = 200;
   
double zulage = 100;
   
public double monatsBrutto() {
   
    return grundgehalt + ortszuschlag + zulage;
   
}
}
//abgeleitete
Klasse Manager
class Manager extends
Mitarbeiter {
   
double fixgehalt = 2000;
   
double provision1;
   
double provision2;
   
double umsatz1;
   
double umsatz2;
   
public double monatsBrutto() {
   
    return fixgehalt
   
        + umsatz1 * provision1 / 100
   
        + umsatz2 * provision2 / 100;
   
}
}
public class Gehaltsberechnung {
   
//1
   
private static final int ANZ_MA = 3;
   
private static Mitarbeiter[] ma;
   
private static double bruttosumme;
   
public static void main(String[] args) {
   
    //2
   
    ma = new Mitarbeiter[ANZ_MA];
   
    //Mitarbeiter-Array füllen, z.B.
   
    ma[0] = new Manager();
   
    ma[1] = new Arbeiter();
   
    ma[2] = new Angestellter();
   
    //...
   
    
   
    for (int i = 0; i < ma.length; ++i) { //3
  
       
System.out.println(ma[i].monatsBrutto());
   
    }
   
}
}