[MontelLUG] Rogna con Java, ereditarietà (multipla?) ed interfacce (per guru)
Edoardo Prestianni
edoardo.prestianni a gmail.com
Lun 5 Ago 2019 09:20:07 CEST
Non ho capito bene, comunque ti posso dire che l'ereditarietà multipla in
Java non c'è.
Una classe può estendere solo una classe, i.e.
public class Parent { }
public class Child extends Parent { }
In compenso, la stessa classe può implementare più di un interfaccia, e la
stessa interfaccia può venire implementata da più di una classe:
interface Person {
// medoto1
// medoto2
}
interface Human {
// metodo3
// metodo4
}
public class Parent implements Person, Human {
// def. metodo1
// def, metodo2
}
In ogni caso:
- devi dichiararle in quanto "interface"
- un'interfaccia non può essere privata
Spero di esserti stato d'aiuto.
Il giorno dom 4 ago 2019 alle ore 20:13 Samuele via montellug <
montellug a montellug.it> ha scritto:
> Dopo un pomeriggio di porchi, avevo definito un oggetto di tipo
> BlockingQueue (che è una interfaccia)
>
> private BlockingQueue<TMessage> MessageQueue
>
> Un oggetto MessageQueue che contiene oggetti TMessage.
>
> Veniva creato così:
> MessageQueue = new |LinkedBlockingQueue|();
>
> Fin qui tutto bene, se non che LinkedBlockingQueue non aveva un metodo
> che mi serviva (rimanere in attesa finché non veniva aggiunto un oggetto
> nella lista); una variante del metodo peek() ma senza che rimuova
> l'oggetto.
> Al che mi sono ereditato la classe LinkedBlockingQueue:
>
> public class TMessageQueue extends LinkedBlockingQueue
> {
> public void WaitMessage()
> {
> //Fa cose
> }
> }
>
> Ma MessageQueue.WaitMessage(); non viene visto in quanto MessageQueue è
> di tipo BlockingQueue che non ha quel metodo.
> Non posso dichiarare MessageQueue di tipo TMessageQueue perché in questo
> modo non mi trova i vari metodi di BlockingQueue.
>
> Mi verrebbe da dire che devo fare una interfaccia che estende
> BlockingQueue e poi una classe derivante da LinkedBokcingQueue che la
> implementa, ma io con l'ereditarietà multipla e sti salti mortali in
> Java non ci ho mai avuto a che fare.
>
> Qualcuno mi sa dare una mano?
>
> Grassie
> _______________________________________________
> montellug mailing list
> montellug a montellug.it
> http://mail.montellug.it/mailman/listinfo/montellug
>
--
Edoardo Prestianni
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://mail.montellug.it/pipermail/montellug/attachments/20190805/6406e5f1/attachment.html>
Maggiori informazioni sulla lista
montellug