aspose file tools*
The moose likes Beginning Java and the fly likes Interface question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Interface question" Watch "Interface question" New topic
Author

Interface question

Jacky Luk
Ranch Hand

Joined: Aug 02, 2012
Posts: 601


If I define cardReader as CSmartCard, I can make use of getOtherData();
if I define cardReader as IReader<CTimeRec>, can I make use of getOtherData();
If not, What should it be defined it as?
Thanks
Jack
Winston Gutkowski
Bartender

Joined: Mar 17, 2011
Posts: 8008
    
  22

Jack Luk wrote:If I define cardReader as CSmartCard, I can make use of getOtherData();

Yes.

if I define cardReader as IReader<CTimeRec>, can I make use of getOtherData();

No.

If not, What should it be defined it as?

That's entirely up to you; but given your code, I'd say probably a CSmartCard.

BTW: The use of initial 'I' and 'C' for your class/interface names is very old-fashioned. Maybe your course uses this notation, but you won't see it used often in the outside world (except perhaps in the Microsoft miniverse); and personally I find that it affects readability.

Winston


Isn't it funny how there's always time and money enough to do it WRONG?
Articles by Winston can be found here
Matthew Brown
Bartender

Joined: Apr 06, 2010
Posts: 4420
    
    8

Winston Gutkowski wrote:(except perhaps in the Microsoft miniverse)

Even there they only use the I prefix for interfaces. They don't use anything for concrete classes. (I found the 'I's a bit jarring at first, but you get used to it. The one that throws me swapping between C# and Java is List, which is an interface in Java and a concrete class in .NET).
Winston Gutkowski
Bartender

Joined: Mar 17, 2011
Posts: 8008
    
  22

Matthew Brown wrote:The one that throws me swapping between C# and Java is List, which is an interface in Java and a concrete class in .NET).

Ooof. Yes, I can imagine.

@Jack: I also notice that your program won't compile. You call cardReader.getData(), but in your entities it's defined as GetData().
Methods in Java should start with a lowercase letter.

Winston
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Interface question