• Post Reply Bookmark Topic Watch Topic
  • New Topic

Breach in Interface Contract  RSS feed

 
addy sharma
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.
 
Tim Moores
Saloon Keeper
Posts: 4036
94
  • 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.
 
Stephan van Hulst
Saloon Keeper
Posts: 7993
143
  • 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.
 
praveen kumaar
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.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12565
49
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 
 
Consider Paul's rocket mass heater.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!