PDA

View Full Version : [Java] Interfaccia


HVDSV
04-05-2009, 09:41
Ho trovato questo esempio in java:

public interface IntA
{

public static interface IntB
{

public long get();
}
public abstract String metC();
}

1- Perché il metodo metC viene dichiarato abstract? All'interno di una interfaccia non sono tutti abstract i metodi?

2- Quale è l'utilità e qual è il vantaggio di avere una interfaccia dentro ad un'altra?

3- In C#, siccome non si può avere una interfaccia dentro l'altra, come diventerebbe?

morskott
04-05-2009, 13:50
Ho trovato questo esempio in java:

public interface IntA
{

public static interface IntB
{

public long get();
}
public abstract String metC();
}

1- Perché il metodo metC viene dichiarato abstract? All'interno di una interfaccia non sono tutti abstract i metodi?

2- Quale è l'utilità e qual è il vantaggio di avere una interfaccia dentro ad un'altra?

3- In C#, siccome non si può avere una interfaccia dentro l'altra, come diventerebbe?

1) Non ci sono metodi abstract in un'interfaccia, da errore di compilazione
2&3) Bho

banryu79
04-05-2009, 13:58
Ho trovato questo esempio in java:
...

Per curiosità, dove l'hai trovato quell'esempio?

vladix
04-05-2009, 14:03
1) Non ci sono metodi abstract in un'interfaccia, da errore di compilazione

un interfaccia puo avere solo metodi abstract ...

banryu79
04-05-2009, 14:11
un interfaccia puo avere solo metodi abstract ...
Esatto, in un'interfaccia i metodi sono astratti per definizione, e non è necessario usare il modificatore abstract.

HVDSV
04-05-2009, 15:54
Allora abstract si può mettere o non mettere che è la stessa cosa.
Non da errori di compilazione, ma appunto non è necessario.
Pensavo fosse una tecnica strana per ottenere qualcosa :fagiano:

Mentre per l'utilità di avere una interfaccia dentro ad un'altra sapete dirmi qualcosa? :)



Per curiosità, dove l'hai trovato quell'esempio?

E' su degli appunti che ci diede il prof alle superiori qualche anno fa.

banryu79
04-05-2009, 17:18
E' su degli appunti che ci diede il prof alle superiori qualche anno fa.

Ah, ecco :)


2- Quale è l'utilità e qual è il vantaggio di avere una interfaccia dentro ad un'altra?

Francamente non mi ero mai posto il problema; è certamente legale dichiarare una "nested interface" dentro una "top level interface", ma non saprei proprio a cosa potrebbe servire.
L'unica cosa che mi viene in mente è che il motivo potrebbe avere a che fare con le regole di visibilità a cui è soggetto ogni inner member dentro a una classe/interfaccia .
Qui (http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#252566)trovi dettagli in merito.


3- In C#, siccome non si può avere una interfaccia dentro l'altra, come diventerebbe?

Questo proprio non lo so dato che non conosco C#.