• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Bear Bibeault
  • Jeanne Boyarsky
  • Tim Cooke
Sheriffs:
  • Knute Snortum
  • Junilu Lacar
  • Devaka Cooray
Saloon Keepers:
  • Ganesh Patekar
  • Tim Moores
  • Carey Brown
  • Stephan van Hulst
  • salvin francis
Bartenders:
  • Ron McLeod
  • Frits Walraven
  • Pete Letkeman

Breach in Interface Contract  RSS feed

 
Greenhorn
Posts: 19
Java Opera Oracle
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator



I have this code where ChildClass implements an interface Demo . the same method signature is used in SuperClass.
This code compiles fine.
Isn't it the breach in the contract of implementing an interface?
even though ChildClass 'has'  doNothing() method but it doesn't implement it for the sake of Interface Contract.
what exactly is happening here.
 
Saloon Keeper
Posts: 4864
117
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm not sure what the breach is supposed to be. ChildClass fulfills the interface that it is supposed to fulfill. That the method is inherited doesn’t matter.
 
Saloon Keeper
Posts: 9380
181
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Doesn't matter. To implement an interface, a class needs to 'have' all instance methods declared by the interface, with matching signatures and compatible return types and visibility. How it got them is of no consequence.
 
Ranch Hand
Posts: 461
22
Android Chrome Eclipse IDE Google App Engine Java Notepad Oracle Ubuntu Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
its not a breach,actually here extending a superclass fulfills the
implementation of the interface simultaneously,that's how it renders the java standout of the multiple inheritance.
 
lowercase baba
Bartender
Posts: 12628
50
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The "contract" means that you can call the methods defined in the interface - not that each class has to explicitly implement them. You can quite clearly call doNothing on an instance of ChildClass, so the contract is fulfilled.
 
addy sharma
Greenhorn
Posts: 19
Java Opera Oracle
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
well thats correct.
The implementing class should "have" all the methods declared in an interface . its not written any where that it should 'implement' all the methods.
Comparator interface is an example  of the same.
Thanks for the clarification 
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!