Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Ereditarietà

  1. #1

    Ereditarietà

    Salve, sto studiando Java e avevo una piccola domanda da fare in quanto non ho ben capito ...

    Supponiamo di avere tre classi:

    public class Animale{

    //Con un metodo;
    public void cammina(){
    System.out.println(“Cammina”);
    }
    }


    public class Cavallo extends Animale{

    //Faccio l'override del metodo cammina;
    public void cammina(){
    System.out.println(“Cammina Cavallo”);
    }

    //Altro metodo;
    public void cavalloMangia(){
    System.out.println(“Cavallo Mangia”);
    }
    }


    public class Test{

    //Creo le istanze;
    Animale oggetto = new Animale();
    Animale oggettoDue = new Cavallo();


    }


    La mia domanda è questa, cosa vuol dire il secondo oggetto? Cioè che l'oggettoDue può accedere anche al metodo cavalloMagia ?...Potete spiegarmi?

    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Ereditarietà

    Originariamente inviato da Diamante87
    Cioè che l'oggettoDue può accedere anche al metodo cavalloMagia ?
    No!!! Tramite il reference oggettoDue non puoi, perché il metodo cavalloMangia() non è noto ad Animale!!!

    Quando hai una cosa appunto:
    Animale oggettoDue = new Cavallo();

    Il tipo del reference (Animale) determina l'insieme dei metodi invocabili (quindi solo quelli noti ad Animale ... dichiarati in Animale oppure "ereditati").

    È poi l'oggetto realmente istanziato (Cavallo) che determina la implementazione del metodo (di istanza) che verrà eseguito. Se su oggettoDue invochi il metodo cammina(), viene eseguito il metodo in Cavallo, quello che stampa "Cammina Cavallo".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.