• 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
  • Devaka Cooray
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Junilu Lacar
  • Paul Clapham
  • Knute Snortum
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • salvin francis
  • Carey Brown
Bartenders:
  • Tim Holloway
  • Frits Walraven
  • Ganesh Patekar

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: 5221
143
  • 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: 9707
192
  • 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: 483
23
AngularJS Eclipse IDE Firefox Browser Java Spring VI Editor
  • 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
Posts: 12705
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  
 
All of the world's problems can be solved in a garden - Geoff Lawton. Tiny ad:
RavenDB is an Open Source NoSQL Database that’s fully transactional (ACID) across your database
https://coderanch.com/t/704633/RavenDB-Open-Source-NoSQL-Database
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!