Pages: [1]   Go Down
Print
Author Topic: segnalazione errore  (Read 1507 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
nairi
Apprendista Forumista
**
Offline Offline

Posts: 185



« on: 07-04-2010, 19:01:10 »

durante la mia esercitazione alla prima prova d'esame mi sono inbattuta in questa affermazione:
L'overriding in Java è una tecnica che permette il polimorfismo                                                 

L'overloading in Java è una tecnica che permette il polimorfismo

vorrei sapere se c'è un errore nelle domande in quanto entrambe risultano vere nella valutazione!
merciiiii...
Logged
Simone Faro
Moderator
Matricola
*****
Offline Offline

Gender: Male
Posts: 67


WWW
« Reply #1 on: 07-04-2010, 20:22:17 »

Cara nairi,
in Java il polimorfismo è permesso sia dall'overloading che dall'overriding.
In particolare l'overloading permette di definire funzioni aventi lo stesso nome ma firme diverse (il metodo è lo stesso ma ha diverse forme).
L'overriding permette di sovrascrivere un metodo quando si definisce una classe attraversol'ereditarietà. Esistono quindi due metodi con il medesimo nome ma hanno corpi diversi (il prima appartiene alla classe madre, il secondo alla sottoclasse).
Per ulteriori dettagli la invito a consultare il paragrafo 2.2.2 del libro di testo.
Logged

________________________________
Simone Faro, Ph.D.
Dipartimento di Matematica e Informatica
Università di Catania
________________________________
nairi
Apprendista Forumista
**
Offline Offline

Posts: 185



« Reply #2 on: 07-04-2010, 22:42:31 »

=D   grazie mille per la risposta! consulterò il libro per fissare meglio  i concetti ...!
Logged
gaernik
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 114


« Reply #3 on: 08-04-2010, 09:12:28 »

a proposito di errore:

Quote
Un metodo definito come abstract non contiene alcun blocco di istruzioni
il simulatore la da come vera, ma in realtà un metodo abstract può contenere\contiene un blocco di istruzioni VUOTO...
credo sia differente, no?
Grazie per le delucidazioni  pray
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 08-04-2010, 12:55:15 »

a proposito di errore:

Quote
Un metodo definito come abstract non contiene alcun blocco di istruzioni
il simulatore la da come vera, ma in realtà un metodo abstract può contenere\contiene un blocco di istruzioni VUOTO...
credo sia differente, no?
Grazie per le delucidazioni  pray
Un metodo "abstract" non può contenere alcun blocco di istruzioni. Un blocco è racchiuso sempre in una coppia di parentesi graffe .

Prova a compilare questo file astrattA.java:
Code:
public abstract class astrattA
{
    public abstract void metodoAstratto ()
    {
    }
}
Riceverai questo errore:

astrattA.java:3: abstract methods cannot have a body
    public abstract void metodoAstratto ()
                         ^
1 error
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
gaernik
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 114


« Reply #5 on: 09-04-2010, 12:05:26 »

ok, my bad 
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #6 on: 09-04-2010, 12:26:23 »

ok, my bad 
Potresti aver visto qualcosa di arcano , perché tu abbia sollevato la precedente osservazione.
Provando a immaginare, posso capire che ci sono dei costrutti non banali che potrebbero lasciarti nel dubbio.

Praticamente si considerino questi due codici simili:
Code:
public abstract class astrattA
{
    public abstract void metodoAstratto ();
}

Code:
public abstract class astrattA
{
    public abstract void metodoAstratto ();
    {
    }
}
Entrambi vengono compilati correttamente, ma il secondo ha una coppia di parentesi graffe (codice) senza codice dentro.

In questo caso, le due classi sono diverse (e anche il byte code è diverso, provare a compilare per credere ok), e si ha che nella seconda versione, c'è semplicemente il blocco codice inizializzatore anonimo.

Sostanzialmente in una classe (anche astratta) è possibile inserire un blocco di codice "anonimo" (cioè che non fa parte di alcuna funzione esplicitamente nominata), che se vogliamo vederlo in modo più chiaro possiamo esprimere così:
Code:
public abstract class astrattA
{
    {
        //blocco codice anonimo
    }
}
Questo codice verrà eseguito quando verrà istanziato un oggetto di classe (figlia o discendente della classe) astrattA, prima di tutti gli altri eventuali costruttori.

Se però questo codice venisse posto appena dopo il prototipo di un metodo astratto, potremmo non accorgerci subito del punto e virgola che termina il prototipo e tutta la descrizione astratta del metodo e male intendere tale codice come parte del metodo astratto .
 univ
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
peppe89ct
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 288


very normal people


« Reply #7 on: 14-04-2010, 12:47:43 »

sei un grande reverseenginer  hai aiutato gaernik(spiegandogli) lo stesso anche quando già lui penso aveva capito!!!!
sinceramente ti dico che se sul forum saremmo tutti come te ci prenderemo la laurea prima !!!!
grazie a nome di quelli meno bravi!!!!
Logged

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #8 on: 14-04-2010, 12:54:36 »

sinceramente ti dico che se sul forum saremmo tutti come te ci prenderemo la laurea prima !!!!

 
Sicuramente con questa frase non prendi nemmeno il diploma in italiano !!
Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
Pages: [1]   Go Up
Print
Jump to: