Trudne programowania początki;/ dziedziczenie

0

Hej!
Uczę się na własną rękę ze skryptów, książek i wszystkiego co mi wpadnie w ręce javy. Nie mam kogo spytać w związku z tym, więc piszę tutaj.

Nie wiem dlaczego obiekt trzy, nie godzi się na metodę test(), która jest zdeklarowana i poprawna.
Proszę o pomoc.

klasa główna:

package projekt;

public class Projekt {

    public static void main(String[] args) throws Exception {
      NewClass2 trzy= new NewClass2();
//tu mam problem
      trzy.test();
      pauza();
    }
    static void pauza()throws Exception
    {
        System.out.print("nacisknij enter...");
        System.in.read();
    }
}

pozostałe klasy:
1)

package projekt;


 class NewClass {
    String Nazwa="raz";
    
    String s(){
        return "1";
    }
    }
package projekt;

class NewClass2 extends NewClass{
    String Nazwa="dwa";
    @Override
    String s(){
        return"2";
    }
}
package projekt;


class NewClass3 extends NewClass2{
    String Nazwa="trzy";
    
  
    String s() {
        return"3";
    }
    
    
    void test(){
        java.io.PrintWriter stdout = new java.io.PrintWriter(System.out,true);
        stdout.println("s()=\t\t\t"+s());
        stdout.println("Nazwa=\t\t\t"+Nazwa);
        
        stdout.println("super.s()=\t\t\t"+super.s());
        stdout.println("super.Nazwa=\t\t\t"+super.Nazwa);
        
        stdout.println("((NewClass2)this).s()=\t\t\t"+((NewClass2)this).s());
        stdout.println("((NewClass2)this).Nazwa=\t\t\t"+((NewClass2)this).Nazwa);
        
        stdout.println("((NewClass)this).s()=\t\t\t"+((NewClass)this).s());
        stdout.println("((NewClass).this).Nazwa=\t\t\t"+((NewClass)this).Nazwa);
        
    }
   
}
1

Obiekt trzy jest typu NewClass2, a w tej klasie nie ma metody test().

0

Przecież NewClass2 nie ma metody test().
PS. Używaj znaczników code=java do zamieszczania kodu

0

kurcze, jasne!
ale ze mnie gapa.
wielkie dzięki!
:)

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