Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

when to use abstract class and interface

 
vidhyasagar reddy
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
can any body explain me when to use abstract class and when to use interface . i know the basic differences b/w them
 
Casper Maxwell
Ranch Hand
Posts: 88
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As far as i remember, we can write method bodies into abstract classes:

...
public void printHello() {
System.out.println("Hello");
}
...

But we can not do this in interfaces. So when i have some common code to use between all specialized versions of my classes but also have interface requirements (inherited classes are required to have their own implementation of some methods), i will prefer to use abstract classes.

If there is no common functionality, i will just use an interface.
 
David O'Meara
Rancher
Posts: 13459
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Casper Casper",
Please see the warning about your display name here.

If you do not update your display name soon your account will be deleted

Dave
[Edit - ooops, wrong link]
[ August 10, 2005: Message edited by: David O'Meara ]
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
http://faq.javaranch.com/view?InterfaceVsAbstractClass
 
Mahesh x Bogadi
Ranch Hand
Posts: 51
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Simple rule.

* Use interface if you don't want to implement any of the member functions.
This implies.
- The class implementing the interface must implement all of its functions.

* In abstract class you need not define/implement all the functions like interface. This can be used where you can to define/implement some method and allow user to implement the rest(if there any unimplemented funtions..since there an abstract class can define/implement all the functions).

Interface and abstract class can be used for multiple inhertence. (OOP concept)
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic