Subklassenfunktion von einem Basisklassenobjekt aufrufen



  • Hallo.

    Wir haben vor kurzem an der Uni angefangen Java zu lernen und sind gerade bei Vererbung und Polymorphie.
    Hier die Klassen:

    //Basisklasse
    public class MedicalDevice 
    {
    	private String identifier;
    	private String manufacturer;
    	private String model;
    	private String []units;
    //Constructor, get und set Funktionen
    }
    
    //abgeleitete Klassen
    public class WeighingScale extends MedicalDevice 
    {
    	private String typeMD;
    //Constructor + get Funktion für Attribut
    }
    
    public class GlucoseMeter extends MedicalDevice 
    {
    	private String typeMD;
    	//Constructor + get Funktion für Attribut
    }
    public class BloodPressureMonitor extends MedicalDevice
    {
    	private String typeMD;
    	//Constructor + get Funktion für Attribut
    }
    

    Jetzt habe ich eine weitere Klasse, in der die ganzen angemeldeten medizinischen Geräte in einem Array gespeichert werden.

    public class Manager 
    {	
    	public static WeighingScale[] registered_weighingScales;
    	public static BloodPressureMonitor[] registered_bloodPressureMonitors;
    	public static GlucoseMeter[] registered_glucoseMeters;
    	public static MedicalDevice[] registered_medicalDevices;
    
    	public static void listMedicalDevices()
    	{
    		for( MedicalDevice md : registered_medicalDevices )
    		{
    			println( "registered medical device: " + md.getIdentifier() + " " + md.getManufacturer() + " " + md.getModel() + " " + md.getUnits() + " " //??? );
    //ich kann hier nicht md.getType() machen, da es diese Funktion nicht gibt
    		}
    	}
    

    Jetzt zu meinem Problem: Ich muss mit der for-Schleife über das Array registered_medicalDevices iterieren und alle registrierte Geräte mitsammt aller Attributen ausgeben. Es ist garantiert, dass jedes registrierte medizinische Gerät ein Glukosemeter, Blutdruckmessgerät oder eine Waage ist.

    Wie kann ich hier in der for-Schleife das Attribut typeMD ausgeben?

    Danke schonmal.





  • Warum ist denn typeMD nicht in der Basisklasse, wenn jede Ableitung ein typeMD hat?


Anmelden zum Antworten