Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Interface Question

 
S. Sumukh
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
This is in connection with last post regarding inner classes.
I came across following code in Bruce Eckel's book..
interface A {}
interface B {}
class X implements A, B {}
class Y implements A {
B makeB() {
// Anonymous inner class:
/*problem*/return new B() {}; //How come Interface is instantiated ?
}
}
public class TestClass {
static void takesA(A a) {}
static void takesB(B b) {}
public static void main(String[] args) {
X x = new X();
Y y = new Y();
takesA(x);
takesA(y);
takesB(x);
takesB(y.makeB());
}
} ///:~
Everything works Ok...
But I couldnt understand...how Interface B can be instantiated ?
can neone plz explain ?
 
Uma Balu
Ranch Hand
Posts: 61
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
/*problem*/ return new B() {}; //How come Interface is instantiated ?

The interface B is not instantiated. An anonymous class is created, which implements the interface B.
Note that it is

and not

Regards,
Uma....
 
S. Sumukh
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Uma..
got it..now..!!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic