| Author |
abstract class
|
Mona Gadkari
Ranch Hand
Joined: Jul 28, 2003
Posts: 64
|
|
an abstract class cannot b instiated -- this is true then in the code below- static A a1 = new A(2){....} -- how come holds. pls clerefy....... abstract class A { private int x = 4; private int y = 2; public A(int i1) {x=i1;} public int x() {return x;} public void x(int x) {this.x = x;} public int y() {return y;} public void y(int y) {this.y = y;} public void incY() {y++;} public abstract int math(); } class B { static A a1 = new A(2) { {incY();} public int math() {return x()+y();} }; public static void main(String[] args) { System.out.print(a1.math()); } }
|
Mona(Varijasmom)
|
 |
Andres Gonzalez
Ranch Hand
Joined: Nov 27, 2001
Posts: 1561
|
|
static A a1 = new A(2) {.. This looks like if you were creating an instance of A. But in reality, it's only a subclass of A. When you have an anonymous inner class, your either creating an on-the-fly subclass of a class or implementing an interface. In this case, your anonymous inner class is implementing the abstract method from class A. HTH
|
I'm not going to be a Rock Star. I'm going to be a LEGEND! --Freddie Mercury
|
 |
 |
|
|
subject: abstract class
|
|
|