Kalkulator d3 = new Dziedziczenie();
Dziedziczenie d4 = (Dziedziczenie) d3.mnozenie();
Nie wiem czemu nie mogę zrobić takiego rzutowania.
Mam klasę Kalkulator bez metody mnozenie() i chciał bym teraz obiekt d3 rzutować na klasę Dziedziczenie gdzie taką metodę posiadam.
Dostaję komunikat "The method mnozenie() is undefined for the type Kalkulator".
Co robię źle?
@EDIT Cały kod:
public class Kalkulator
{
private boolean wypelnienie;
public Kalkulator()
{
this(true);
}
public Kalkulator(boolean w)
{
this.wypelnienie = w;
}
public void setWypelnienie(boolean w)
{
this.wypelnienie = w;
}
public boolean getWypelnienie()
{
return wypelnienie;
}
public static void main(String[] args)
{
}
}
public class Dziedziczenie extends Kalkulator
{
private int zmienna1;
private int zmienna2;
public int mnozenie()
{
int temp;
temp =zmienna1 * zmienna2;
return temp;
}
public Dziedziczenie()
{
this(2, 2);
}
public Dziedziczenie(int z1, int z2)
{
this(z1, z2, true);
}
public Dziedziczenie(int z1, int z2, boolean w)
{
super(w);
this.zmienna1 = z1;
this.zmienna2 = z2;
}
public void setZmienna1(int z)
{
this.zmienna1 = z;
}
public void setZmienna2(int z)
{
this.zmienna2 = z;
}
public int getZmienna1()
{
return zmienna1;
}
public int getZmienna2()
{
return zmienna2;
}
public static void main(String[] args)
{
Dziedziczenie d = new Dziedziczenie(10, 10);
System.out.println(d.mnozenie());
Kalkulator k1 = new Kalkulator();
System.out.println(k1.getWypelnienie());
System.out.println(d.getWypelnienie());
}
}
public class Polimorfizm
{
public static void main(String[] args)
{
Kalkulator k1 = new Kalkulator();
Dziedziczenie d1 = new Dziedziczenie();
Dziedziczenie d2 = new Dziedziczenie();
Kalkulator d3 = new Dziedziczenie();
Kalkulator[] k2 = new Kalkulator[3];
k2[0] = k1;
k2[1] = d1;
k2[2] = d2;
System.out.println(((Dziedziczenie) k2[1]).mnozenie());
Dziedziczenie d4 = (Dziedziczenie) d3.mnozenie();
// System.out.println(((Dziedziczenie) d3).mnozenie());
}
}