An
interface is a "contract".
If a class implements an interface it has to propose all the services listed in
the interface.
An
abstract class is a skeleton. It defines a certain way its extended classes
will work while letting them some free space (the abstract methods) to be
unique.
A
pure abstract class doing the same thing as an interface but have the problem
of unique extending so, for me, it have no interest.
Every interface is implicitly
abstract
Every
method declaration in the body of interface is implicitly abstract and public.
An
abstract class has methods that can contain implementation. Abstract methods
can be either public, protected or default access (package visible). Unlike interfaces abstract classes can contain fields
that are not static and final.
|
Interface
|
Abstract
Class
|
Extend
Class
|
No
|
Yes
|
Extend
Abstract Class
|
No
|
Yes
|
Implement
Interface
|
Yes(Extend
Interface)
|
Yes
|
Variables
|
public
static final
|
public/protected/private/static/final/transient/volatile
|
Contain
Non-Public Method
|
No
|
Yes
|
Contain
Abstract Method
|
Yes
|
No
|
No comments:
Post a Comment