Ever since when I appeared for my first interview during campus recruitment in my College (That was the year 2007 when I was in my 3rd year of Engineering!) to this day, when I am over 3 years experienced professional, this topic has always been indispensable & by far the most favorites among the interviewers taking a technical interview for the position of Software Engineers.
So I thought to share the way I handled this concept:
So I thought to share the way I handled this concept:
Difference Between
Interface and Abstract Class
- Main difference is methods
of a Java interface are implicitly abstract and cannot have
implementations. A Java abstract class can have instance methods that
implements a default behavior.
- Variables declared in a Java
interface is by default static final. An abstract class may
contain non-final variables.
- Members of a Java interface
are public by default. A Java abstract class can have the usual flavors of
class members like private, protected, etc..
- Java interface should be
implemented using keyword “implements”; A Java abstract class should be
extended using keyword “extends”.
- An interface can extend
another Java interface only, an abstract class can extend another Java
class and implement multiple Java interfaces.
- A Java class can implement
multiple interfaces but it can extend only one abstract class.
- Interface is absolutely
abstract and cannot be instantiated; A Java abstract class also cannot be
instantiated, but can be invoked if a main() exists.
- In comparison with java
abstract classes, java interfaces are slow as it requires extra
indirection.
Source - Books.
0 comments:
Post a Comment