Quiz

6 views
Skip to first unread message

Davide

unread,
May 11, 2013, 5:23:43 PM5/11/13
to jug...@googlegroups.com
Ciao,

quiz del weekend. Come mai il seguente codice da problemi?


package bz.davide;

public class A
{
   B a = new B();

   public static void main(String[] args)
   {
      A a = new A();
   }
}

class B extends A
{

}


--
Davide Montesin - Java - Android - HTML5 - XML - JSON - Open source - Software Project Management - Agile - Bolzano - Bozen - Alto Adige - Südtirol - Italy
E-mail : d...@vide.bz
Website: www.davide.bz

My java projects:
source-to-reflection: Java Fast High Performance Reflection For J2SE J2EE Android GWT Open Source Project
object-xmljson: Java Fast High Performance XML JSON Converter Mapping Binding J2SE J2EE Android GWT No Annotation Open Source Project
seo-friendly-ria-web: Java SEO Friendly RIA HTML5 Open Source Project

Simone Bordet

unread,
May 11, 2013, 7:11:36 PM5/11/13
to jugtaa
Ciao,

On Sat, May 11, 2013 at 11:23 PM, Davide <d...@vide.bz> wrote:
> Ciao,
>
> quiz del weekend. Come mai il seguente codice da problemi?
>
> package bz.davide;
>
> public class A
> {
> B a = new B();
>
> public static void main(String[] args)
> {
> A a = new A();
> }
> }
>
> class B extends A
> {
> }

Senza provare, direi che siccome A dipende - in quanto ha un field di
tipo B - da una sua sottoclasse, B appunto, c'è una dipendenza
circolare tra le classi: per caricare A devo conoscere B, per caricare
B devo conoscere A (in quanto sua superclasse).
Non sono sicuro se questo errore viene trovato dal compilatore javac,
oppure se viene trovato solo a runtime.

--
Simone Bordet
http://bordet.blogspot.com
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz

Simone Bordet

unread,
May 11, 2013, 7:13:06 PM5/11/13
to jugtaa
On Sun, May 12, 2013 at 1:11 AM, Simone Bordet <simone...@gmail.com> wrote:
> Ciao,
>
> On Sat, May 11, 2013 at 11:23 PM, Davide <d...@vide.bz> wrote:
>> Ciao,
>>
>> quiz del weekend. Come mai il seguente codice da problemi?
>>
>> package bz.davide;
>>
>> public class A
>> {
>> B a = new B();
>>
>> public static void main(String[] args)
>> {
>> A a = new A();
>> }
>> }
>>
>> class B extends A
>> {
>> }
>
> Senza provare, direi che siccome A dipende - in quanto ha un field di
> tipo B - da una sua sottoclasse, B appunto, c'è una dipendenza
> circolare tra le classi: per caricare A devo conoscere B, per caricare
> B devo conoscere A (in quanto sua superclasse).
> Non sono sicuro se questo errore viene trovato dal compilatore javac,
> oppure se viene trovato solo a runtime.

Dico il compilatore, dovrebbe essere evidente la circolarità in fase
di compilazione.
Reply all
Reply to author
Forward
0 new messages