Metoda nie przeciąża się

0
 public void overtest()
{
    System.out.println("podaj slowo:");
    Scanner slo = new Scanner(System.in);
    tekst= slo.next();

}
public void overwynik()
{
    System.out.println(tekst);
} 
 public class over extends menu {
    @Override
    public void overwynik() {
        System.out.println(tekst+"123");
    }
} 

Czemu nie wyświetla się tekst z 123?

0

Z jakiej klasy jest obiekt na którym "działa" metoda overwynik?
Trzy uwagi:

  • w tym przypadku nie ma przeciążania metod, jest nadpisywanie
  • przestrzegaj konwencji nazewniczych Javy (nazwy klasy zaczynają się dużą literą, nazwy metod są lowerCamelCase).
  • nie twórz nazw polsko-angielskich (overwynik wygląda obrzydliwie).
0

nie wiem jak odpowiedzieć to udostępniam ci kod

 public class Kalkulator {
    public static void main(String args[])
    {
        System.out.println("WITAJ W KALKULATORZE!!!");
        menu glowne= new menu();
        glowne.menu();
        glowne.wybor();
        glowne.overtest();
        glowne.overwynik();
        glowne.liczby();
        glowne.wynik1();

    }
} 
 public class menu {
    public int a;
    public int b;
    public int wybor;
    public int wynik;
    public String tekst;

    public menu() {

    }
    public void menu() {
        System.out.println("1.Dodawanie");
        System.out.println("2.Odejmowanie");
        System.out.println("3.test przeciazenia metody");
    }

    public void wybor() {
        Scanner wyb = new Scanner(System.in);
        wybor = wyb.nextInt();
    }
public void overtest()
{
    System.out.println("podaj slowo:");
    Scanner slo = new Scanner(System.in);
    tekst= slo.next();

}
public void overwynik()
{
    System.out.println(tekst);
}
0

Nigdzie nie używasz klasy "over", więc w jaki sposób chcesz nadpisać tę metodę? To, że zdefiniujesz metodę, w klasie potomnej, która nadpisuje jakąś metodę, nie oznacza, że w klasie bazowej też ta metoda zostanie nadpisana. To byłoby bardzo niebezpieczne zachowanie.

P.S.
Nazwy klas piszemy z dużej litery.

0

Dziwne, że nie wiesz jak odpowiedzieć.

        menu glowne= new menu();
        ...
        glowne.overwynik();

Zatem obiekt na którym "działa" metoda overwynik jest typu menu. Dlaczego oczekujesz, że wykona się metoda z klasy pochodnej 'over`?

0

Zrobiłem działa tak jak chciałem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1