Anledningen till felet kanske är att du inte har skapat någon klass som "SparKonto" (framgår i vart fall inte av din problembeskrivning om du gjort det). Jag skulle rekommendera en annan lösning. Du låter en klass "SparKonto" ärva från "Konto". Sedan låter du de båda klasserna ha varsin implementation av "getRanta()" som är anpassad för respektive klass. Då behöver du inte skicka in "Konto" till den metoden och slipper testa vad det är för typ av konto. Är det sparkontots getRanta som anropas, då blir det rätt. Så som du har gjort nu, utnyttjar du inte fördelarna med objektorienterad programmering.
Frågan#1
public abstract class Konto
{
private static final double RANTA = 0.0125;
private static final double LAN_RANTA = 0.0225;
private String support = "Bankens supportavdelnings tel: 12 34 56";
public static void getRanta(Konto k)
{
if(k instanceof SparKonto)
{
System.out.println("Aktuell sparränta är "+(RANTA\*100)+"%");
}
else
{
System.out.println("Aktuell låneränta är "+(LAN_RANTA\*100)+"%");
}
}
public void getSupport()
{
System.out.println(support);
}
protected void setInsatt(int i)
{
System.out.println("KONTO;Din insättning är registrerad");
}
protected abstract boolean getUttag(int i);
protected abstract int getSaldo();
}
Får detta felet:
C:\Program\Xinox Software\JCreator Pro\MyProjects\Konto.java:9: cannot resolve symbol
symbol : class SparKonto
location: class Konto
if(k instanceof SparKonto)
^
1 error
Process completed.
