Hi,
bin derzeit dabei mich für die Klausur im ersten Semster vorzubereiten und habe bei folgender Übungsaufgabe ein kleines Problem.
Man soll zwei Klassen entwerfen, Konto und Sparkonto, wobei Sparkonto die Subklasse von Konto ist. In der Klasse Sparkonto soll man eine Main-Methode schreiben, bei der in ein Array von beiden Klassen jeweils ein Objekt erstellt wird. Vererbung funktioniert wunderbar, will ich jedoch die zustätzliche Methode von Sparkonto über das Array aufrufen
kennt er mir diese nicht.
Ich vermute, dass ich bei der Initialisierung der Objekte im Array irgendetwas falsch mache.
Wäre für jegliche Hilfe dankbar.
Martin
Hier noch zusätzlich die Klasse StdInput die wir für den Input verwenden.
Dürfte aber nicht die Ursache des Problems sein.
bin derzeit dabei mich für die Klausur im ersten Semster vorzubereiten und habe bei folgender Übungsaufgabe ein kleines Problem.
Man soll zwei Klassen entwerfen, Konto und Sparkonto, wobei Sparkonto die Subklasse von Konto ist. In der Klasse Sparkonto soll man eine Main-Methode schreiben, bei der in ein Array von beiden Klassen jeweils ein Objekt erstellt wird. Vererbung funktioniert wunderbar, will ich jedoch die zustätzliche Methode von Sparkonto über das Array aufrufen
k[1].setHabenzinssatz();
kennt er mir diese nicht.
Java:
class Konto
{
protected int Kontonummer;
protected int Kontostand;
public Konto()
{
}
public void setKontonummer()
{
this.Kontonummer = StdInput.readInt("Kontonummer eingeben");
}
public void Einzahlung()
{
this.Kontostand = this.Kontostand + StdInput.readInt("Betrag zur Einzahlung eingeben");
}
public void printKonto()
{
System.out.println("Kontonummer: "+Kontonummer);
System.out.println("Kontostand: "+Kontostand);
}
}
public class Sparkonto extends Konto
{
private int Habenzinssatz;
public Sparkonto (int hzs)
{
this.Habenzinssatz = hzs;
}
public void printKonto()
{
super.printKonto();
System.out.println("HZS: "+Habenzinssatz);
}
public void setHabenzinssatz()
{
this.Habenzinssatz = StdInput.readInt("HZS eingeben");
}
public static void main(String [] args)
{
Konto [] k = new Konto [2];
k [0] = new Konto();
k [1] = new Sparkonto(0);
/*
Sparkonto sk = new Sparkonto();
sk.setHabenzinssatz();
sk.printKonto();
*/
for(int i=0; i<k.length; i++)
{
k[i].setKontonummer();
k[i].Einzahlung();
}
k[1].setHabenzinssatz();
for(int i=0; i<k.length; i++)
{
k[i].printKonto();
}
}
}
Ich vermute, dass ich bei der Initialisierung der Objekte im Array irgendetwas falsch mache.
Wäre für jegliche Hilfe dankbar.
Martin
Hier noch zusätzlich die Klasse StdInput die wir für den Input verwenden.
Dürfte aber nicht die Ursache des Problems sein.
Java:
// package util;
import java.io.*;
public class StdInput
{
public static char readChar() ////////////////////////////////////////////////
{
BufferedReader br;
String inputString;
char value = 0;
br = new BufferedReader(new InputStreamReader(System.in));
try
{
inputString = br.readLine();
value = inputString.charAt(0);
}
catch(IOException _uh)
{
System.out.println("Lesefehler !");
}
catch(NumberFormatException ex)
{
System.out.println("Sie haben keinen int-Wert eingegeben !");
}
return value;
}
public static char readChar(String value)////////////////////////////////////
{
System.out.println(value);
return readChar();
}
public static double readDouble() ///////////////////////////////////////////////
{
BufferedReader br;
String inputString;
double value = 0.0;
br = new BufferedReader(new InputStreamReader(System.in));
try
{
inputString = br.readLine();
value = Double.parseDouble(inputString);
}
catch(IOException _uh)
{
System.out.println("Lesefehler !");
}
catch(NumberFormatException ex)
{
System.out.println("Sie haben keinen double-Wert eingegeben !");
}
return value;
}
public static double readDouble(String value) ////////////////////////////////////
{
System.out.println(value);
return readDouble();
}
public static int readInt() //////////////////////////////////////////////////////
{
BufferedReader br;
String inputString;
int value = 0;
br = new BufferedReader(new InputStreamReader(System.in));
try
{
inputString = br.readLine();
value = Integer.parseInt(inputString);
}
catch(IOException _uh)
{
System.out.println("Lesefehler !");
}
catch(NumberFormatException ex)
{
System.out.println("Sie haben keinen int-Wert eingegeben !");
}
return value;
}
public static int readInt(String value) //////////////////////////////////////////
{
System.out.println(value);
return readInt();
}
public static String readString() /////////////////////////////////////////////////
{
BufferedReader br;
String inputString = "";
br = new BufferedReader(new InputStreamReader(System.in));
try
{
inputString = br.readLine();
}
catch(IOException _uh)
{
System.out.println("Lesefehler !");
}
return inputString;
}
public static String readString(String value) /////////////////////////////////////
{
System.out.println(value);
return readString();
}
}