File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes interface problem Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "interface problem" Watch "interface problem" New topic

interface problem

payal sharma
Ranch Hand

Joined: Oct 04, 2000
Posts: 57

here object a1 is of tyep AnInterface but reference of AnInterfaceImpl.
Call method on this object is giving compile time error methodOne do not catch or throw Exception.
But why

this compiles and with out and error or exception.
George Pincharoen
Ranch Hand

Joined: Jul 03, 2001
Posts: 45
In statement
AnInterface ai = new AnInterfaceImpl();
compile-time type of ai is AnInterface that methodOne() throws an
Exception if you not catch it compile-time error occur,
but statement
AnInterfaceImpl ai = new AnInterfaceImpl();
compile-time type is AnInterfaceImpl that methodOne() dosen't throws an Exception so it compiles without error
Ashish Hareet
Ranch Hand

Joined: Jul 14, 2001
Posts: 375
To do away with the problem we could have a1.methodOne() in a try catch block or we could simply use a throws with the main() in ATest .
Thanx , it cleared my doubt aswell .
Rest w/ George
Desai Sandeep
Ranch Hand

Joined: Apr 02, 2001
Posts: 1157
Would like to add that it is always better to program to an interface rather than program to a class.The advantage you get is you can change the stub without any requirement for client compilation.This cannot be possible when you program to a class.

AnInterface ai = new AnInterfaceImpl();

is better than

AnInterfaceImpl aii = new AnInterfaceImpl();

It is bad programming to implement the methodOne() without throwing an exception.Remember that the interface signifies responsibilities which every implementing class must adhere to.

Hope this helps,
SCJP2, OCSD(Oracle JDeveloper), OCED(Oracle Internet Platform)
[This message has been edited by Desai Sandeep (edited July 25, 2001).]
I agree. Here's the link:
subject: interface problem
It's not a secret anymore!