Difference Between Interface and Abstract Class

23/04/2008
  1. 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.
  2. Variables declared in a Java interface is by default final. An  abstract class may contain non-final variables.
  3. 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..
  4. Java interface should be implemented using keyword “implements”; A Java abstract class should be extended using keyword “extends”.
  5. An interface can extend another Java interface only, an abstract class can extend another Java class and implement multiple Java interfaces.
  6. A Java class can implement multiple interfaces but it can extend only one abstract class.
  7. Interface is absolutely abstract and cannot be instantiated; A Java abstract class also cannot be instantiated, but can be invoked if a main() exists.
  8. In comparison with java abstract classes, java interfaces are slow as it requires extra indirection.

5. An interface can extend another Java interface only [...]

It sounds like what you’re saying is that an interface can
ONLY extend ONE other interface?

mjt on December 17th, 2009 10:03 am

No, an interface can extend multiple interfaces.

Probably I should have phrased difference 5 as, “an interface can extend other interfaces and cannot extend an abstract or concrete class. Also, an interface cannot implement (but extend) other interfaces”.

Thank mjt for pointing out.

Joe on December 19th, 2009 2:47 pm

thanks for the abstract and interface difference ..
please send this complete book for me

zelalem on December 19th, 2009 8:10 pm

if interface object’s initialization with corresponding class instantiation examples would have presented.

Balraj kairamkonda on December 25th, 2009 11:54 am

Instead of picking points from Java books about the differences, it would be better if you describe the main advantages of using interfaces and abstract class, when to use interface and abstract classes. That would add value to your question and make easy understand to the viewer.

Unknown on January 4th, 2010 10:52 am

Excellent tutorial on abstract and interface difference
One more point – If I dont want multiple inheritence then which one is better to use?? Interface or abstract class??

Anonymous on February 11th, 2010 12:41 pm

@unknown – I was just trying to reproduce the theory in a simple way as in my style.

But, apart from this list of difference, I will write a separate article on when to use interface and when to use abstract class

Joe on February 12th, 2010 6:00 am

The difference no 8.
“In comparison with java abstract classes, java interfaces are slow as it requires extra indirection.”

What is this “extra indirection”. I have seen same difference point in other sites without clear information.

Also how can we prove that java interfaces are slow than abstract classes.

Arun Pratap Singh on March 6th, 2010 8:43 am

to know more about the difference between interface and abstract class ….read SCJP kathy sierra’s book….best as far as i know…

rakesh on March 9th, 2010 10:50 am

good i learn very much from this webiste

abubakar on April 27th, 2010 8:00 pm

thanks for giving explanation and difference between these two and i need more details about core java

rajesh on July 28th, 2010 11:12 am

Hi,
some nice tips on this site!
I also don’t get difference 8 though – can you clarify please?

Sean, melbourne photographer on August 1st, 2010 12:38 pm

how to utilize interface in another class without implementing that interface

raghu on August 3rd, 2010 2:34 pm

It’s good, lists the complete abstract and interface difference in simple way

Argha Basu on September 16th, 2010 2:16 pm

Hey Raghu,you can do that by making the implementing class abstract and then extend it in another class of your choice .

maxmetallica on September 24th, 2010 6:31 pm

apart from difference between them,
use Interfaces when you require 100% abstraction otherwise use abstract class

Manish on October 28th, 2010 11:08 pm

Why interface cannot be instantiated?

Manas on November 7th, 2010 7:19 pm

why a default constructor is provided by jre in java

prateek srivastava on November 24th, 2010 11:59 am

thanx for the complete abstract and interface difference thing… its good, it helps me alot

monika bansal on December 5th, 2010 4:15 pm

Your website looks so good..

Hema on January 24th, 2011 8:47 am

Hi,

We can also discuss like an interface will be used for an object reference of its implementing class while abstract class object reference can be used for its extending class.

subbu on January 25th, 2011 4:34 pm

your explanation is very good
please send me the whole book

mohan on January 31st, 2011 5:45 pm

There is no book. But I have an idea of coming up with something in the future.

Joe on February 1st, 2011 3:40 am

interface is the most powerfull solution of using multiple inheritance because java does not support multiple inheritance

Thank you

yogesh on February 5th, 2011 5:58 am

good explanation but
explain new topics on java

rajesh on February 5th, 2011 1:33 pm

Thank you…very much……..
please…..
send me one copy of this book.

amit kumar on February 13th, 2011 5:06 pm

ya i accepted this concepts and more useful for beginers……..

niyaz on February 21st, 2011 10:58 am

Hi.
can u give me the difference between the two following statements

1.A sub1=new B();
2.B sub2=new B();

where A is suerclass
B is the sub class

//method over riding
class A
{
int i,j;
A(int a,int b)
{
i=a;
j=b;
}
void show()
{
System.out.println(“super”);
System.out.println(i);
System.out.println(j);
}
}

class B extends A
{
int k;
B(int a,int b ,int c)
{
super(a,b);

k=c;
}
void show()
{

System.out.println(“sub”);
System.out.println(i);
System.out.println(j);
System.out.println(k);
}
}
class Override{
public static void main(String args[])
{
A sub1=new B(1,2,3);
B sub2=new B(1,2,3);
sub1.show();
sub2.show();

}
}

shafi on March 3rd, 2011 6:37 am

first you have to concentrate on Polymorphism concept , why because if you are crating the object and the object reference is give to super class , then on that time it checks whether that method is there in subclass or not at compile time

venkat on March 3rd, 2011 3:43 pm

plz write a default construcctor in side class A then above code compile and run successfully………..

Chandrashekhar on March 21st, 2011 7:44 am

example is nothing but a polymorphism………

Chandrashekhar on March 21st, 2011 7:45 am

thanks it is very useful.

sindu on March 23rd, 2011 3:44 pm

thanks for clarrification

ramakrishna on March 25th, 2011 12:48 pm

When to use abstract class over Interface ?

Thanks in Advance
Remya

Remya on April 1st, 2011 7:05 am

its a great help for understanding main difference between both abstract class as well as interface.
to know more about the difference between interface and abstract class ….

Aryan Nardiganj on April 17th, 2011 7:48 pm

plz mail me the difference in abstract and final keywords in java

manish on April 19th, 2011 4:30 pm

what is difference between overloading and overriding?

vivek kumar on April 27th, 2011 2:09 pm

Wow… it is too good Blog..

it is too Elegant..,
Conceputally Nice…,

I like the Way u explain about “Difference between Abstract class and Interface”

What my suggeation is…, Write one Example Program For Every Explanation..

RaamNaresh Reddy on April 29th, 2011 5:50 am

thanks for ur explanation

Thadeuse on May 1st, 2011 4:13 am

is it possible
abstract class A extend b implements c
{
}

Thadeuse on May 1st, 2011 4:30 am

thanks for explain it

trupti on May 7th, 2011 10:50 am

thanks for the basic help in java

Uma Karmakar on May 12th, 2011 8:13 am

How many maximum number of Interfaces are implements in our class?

Hari chowdary on May 14th, 2011 7:11 am

Hi….. It is too good.

Rahul Jaiswal on May 27th, 2011 9:21 am

Hi Joe,
This is very useful.Being a fresher its very useful for me. Mainly the website design is really fantastic.Keep going……….

meena on June 2nd, 2011 1:31 pm

why abstract class does not support for the multiple inheritance?

sam on June 6th, 2011 11:15 am

Please mail me this book.

Asha.BM on June 7th, 2011 2:18 pm

Thanking U for providing a comprehensive information. may allmight with u to have ur destiny.

Lokanath on June 7th, 2011 6:55 pm

hai
very nice and good.

rajitha on June 9th, 2011 8:18 am

Thanks it was a little helpful for me….

Zeeshi on June 13th, 2011 5:08 pm

Difference B/W overRiding and overLoading:

in over riding perameters and type of method remain same. but its internal properties changed you can say over ridden.

in over loading the name of method is same but parameters are different. according to type or in number. the call to these functions depends on the parameters compatibility…

Zeeshi on June 13th, 2011 5:12 pm

dis infermation is very well and easy to understanding…..i am feel good………

kousalya on June 16th, 2011 6:27 am

the main difference is interface doesnot talks about implementation.it talks about requirement specification
abstract class:
it talks about implementation but not completely(partial implementation).

guest on June 17th, 2011 5:45 am

Hi readers,
i go through all above mentioned discussion regarding interfaces and abstract classes. So i feel some person need example where to use interfaces . In order to understand the interface concept just thinking that how jdbc api worked with each and every dbms(oracle,mysql etc) because jdbc api provide just interfaces and implementations of these interfaces are provided by the dbms vendor that implementations are known as database drivers. (9888327755-ssubhi_2003@yahoo.com). Feel free to discuss any java topic

satnam singh on June 17th, 2011 7:15 am

thanks

dis infermation is very well and easy to understanding…..i am feel good………

Rajanikanth on July 2nd, 2011 5:50 pm

well written

Mansi Singhal on July 6th, 2011 4:54 am

Easy and point wise description help me to understand the exact difference.

Kavan Vakhariya on July 12th, 2011 10:44 am

Im ery helpful to all, this discussion has provide me clear knowledge.
yes and i most lke info provided by satnam singh, you know we were using that but never came in mind that how basic java get used over there. great….

Anonymous on July 15th, 2011 6:23 am

nice artiacle and very helpful also…Can anybody explain why java interfaces are slow and how it requires extra indirection??

Thanks in advance.

Guest on July 19th, 2011 6:08 am

All the above mentioned pts. are totally easy to undertand.

Madhuri Gorde on July 21st, 2011 6:13 am

hii can any one help me to know how interface is slower than abstract abstract class.
in the above article what indirection means?

ganesh on July 21st, 2011 10:30 am

Really nice points to understand thanx

arxlan ahmed on July 21st, 2011 10:56 am

Could you please give some program examples, about their diffrences

Swetha N on July 23rd, 2011 9:00 am

hi i through all above ur’s feedback pls can u people send me what is difference between class interface and abstract class
send me j-krishna@live.com

krishna on July 25th, 2011 5:47 am

how multiple interface is used instead of multiple inheritance??

kasthuri on July 26th, 2011 9:30 am

before studying this information i am not clear about interface and abstract class.just now i am know about this topic.thank you

venkatesan.g on July 28th, 2011 11:22 am

Neat & Clear!!! Information provided can be understood by even a average student.

Yashas on August 3rd, 2011 12:56 pm

i need a difference between a class and a interface?

Anonymous on August 6th, 2011 2:14 pm

Very well written article

Rajesh Kumar on August 8th, 2011 6:46 am

All of the variables in an interface are implicitly static and final.

Justin on August 16th, 2011 4:54 pm

hai guys, how to use in spring with struts?

kathirvelan on August 22nd, 2011 10:22 am

nice info

ppp on August 26th, 2011 12:16 pm

thanxxxxxxxxxxxxxxxx

Deepak on September 5th, 2011 10:17 am

all i saw was jibber man.. please for heavens sake , use examples…!

wtd on September 6th, 2011 5:50 am

nice explanation

vijayPratap Singh on September 7th, 2011 4:39 am

nice explanation

vijayPratap Singh on September 7th, 2011 4:39 am

Mr. Satnam Singh explained very well…..so nice

Sayyed Imam on September 11th, 2011 1:14 am

thats good, i understand the difference between interface and abstract class.
but can you give a code which show the difference ……

Jeetu on September 14th, 2011 4:00 am

Easy to understand

Anonymous on September 14th, 2011 8:27 am

its very helpful to me thanqs for your kindly info…….

srikanth venigalla on September 17th, 2011 8:31 am

its very help to me .thanqs fro your kindly info…

srikanth venigalla on September 17th, 2011 8:33 am

nice difference between interface and abstract class

mohit on September 22nd, 2011 6:41 pm

i have a doubt, if we implement an interface need to write all the methods in that interface even if we don’t need the methods .what is the case of abstract class?

shree on September 23rd, 2011 9:11 am

Thank you all for your great comments!

Joe on September 26th, 2011 4:29 am

thanxxx

ankit on September 26th, 2011 2:09 pm

plz send me the complete tutorials so that it will helps me a lot

T.PRIYDARSHINI on September 29th, 2011 4:31 am

Thank you so much for giving the best Answer…

because of i am so confused
Thank you again.

Pankaj on October 6th, 2011 6:54 am

abstract class and java class both are same or different???

T.PANDEESWARI on October 7th, 2011 6:06 am

HI Joseph,

Let me know that why we are choosing “Interface” & “Abstract class” for a good application..

Thanks in advance,
Selva

Selva on October 7th, 2011 7:39 pm

hiiiiiiiiiii joseph,

what is we commoly use in java project that is absruct class or interface?

my second question is that what the actuall meaning of implimentation and extand?

neeraj tanwar on October 10th, 2011 5:57 am

my first ques is 1)6 points of difference between object and class.
2)6 points of difference between dynamic binding and message passing.

ruchi on October 12th, 2011 5:28 pm

ques) explain briefly why cant we use a keyword as a variable name???

ruchi on October 12th, 2011 5:30 pm

tell me true or false…
1. when if statement are nested,the last else gets associated with the nearest if without an else.
2. one if can have more than one else clause.
3. a switch statement can always be replaced by a series of if…else statements.
4. a switch expression can be of any type.
5. a program stops its execution when a break statement is encountered.

ruchi on October 12th, 2011 5:33 pm

very very good explanation on the differences

manas sahoo on October 15th, 2011 11:32 am

This is quiet good….
It may be useful for interview…

VipinJeet Tripathi on October 16th, 2011 3:29 am

very accurate answers.good.

sushil on October 16th, 2011 12:47 pm

very nice answers good

harshil on October 16th, 2011 2:03 pm

This is really good….
It is useful for interview

soma on October 17th, 2011 1:28 pm

Its so easy to learn even if the people doesn’t know java

Rajan E on October 18th, 2011 6:47 am

tt

tt on October 18th, 2011 7:23 am

This is really helpful!!

Samantha on October 19th, 2011 5:00 am

Hi Joe,

Can you please tell me when to use Abstract class and when to use Interface in an application?

Shitansu on October 19th, 2011 7:25 am

give reallife example of interface…….

vinod on October 19th, 2011 7:28 am

hey i didnt get my answers,,,,,,,,,,,,

Anonymous on October 20th, 2011 3:58 pm

thank u sir

plz mail me similarities between an interface and classes

khushboo on October 21st, 2011 1:41 pm

In interfaces we cannot have any implementation for methods but that’s not the case with abstract classes we can have implementation for methods.

jessie143143 on October 21st, 2011 2:21 pm

thank you for giving informations
but i want more details …..

mani on October 25th, 2011 6:02 am

nice explanation for interface and abstract class

ramesh on October 30th, 2011 9:11 am

about java buzz words ?

sampath on November 2nd, 2011 12:27 am

It is very use full for me….. Thank you… by V.Vinoth from poondi

vinoth on November 2nd, 2011 4:41 am

Thank you very much … it was very useful to me

Ahmad on November 2nd, 2011 7:14 pm

thank u for giving this wondarful information

sai on November 4th, 2011 12:52 pm

Hi Joseph sir,

Thanks for the detailed explanation of diff between abs class and interface. I would like to know , on what basis programmer deside he need to use interface or abstract class ? and if interface is having 2 abstract methods(only) and abstract class is having 2 abstract methods(only) then what was the difference in both ? Please post answers for the questions.
Thanks and Regards,
Praveen G

Praveen on November 5th, 2011 11:00 am

Very helpful…

Anudeep on November 5th, 2011 9:28 pm

plz give me the 6 points of difference between messege passing and message binding……..

karabi das. on November 10th, 2011 5:57 pm

i still have a doubt, when we have to use interface and when we have to use abstract(class as well as method)

srividhya on November 16th, 2011 7:28 am

plz suggest me how can i become expert in making programs by myself?? because coding postion in java is a biiiiigggg giant for me can u suggest how can it be easier for me the coding in java

ana on November 19th, 2011 7:37 am

nice web site

swati on November 19th, 2011 8:56 am

its really helpfull for my class lacture

sabrina on November 21st, 2011 5:25 am

what is the main reason to create abstract class?…..
sir i know we cant create object of abstract class and we also provide method body in abstract class compare to interface…

mayank jain on November 21st, 2011 11:43 am

good and simple

Anonymous on November 23rd, 2011 5:18 am

difference b/w instance variable and class variable.

Anonymous on November 23rd, 2011 11:57 pm

what are the changes to a variable ,method and a class when a final keyword is added to them.

jangbahadur patel on November 24th, 2011 12:03 am

I was put forth this question in the interview.Please help.

When you have to pass the data in the form of keys which collection would you use ?

jayashree on November 26th, 2011 1:38 pm

thank you for information about abstact class and interface

Thirupathi on November 30th, 2011 10:39 am

Apart from these differences one more difference is in my mind, i want to ask is it correct or not-

* interface can be declare as a member of a class while abstract class is’t.

ram kumar on December 3rd, 2011 6:19 am

some interface define just constants and no methods……thanks 4 giving such simple and good differences….can u send me whole book on my given id….plz…..

vivek bhatt on December 6th, 2011 6:17 am

can u send me the real time example that when do we use interfaces and when do we use abstract class

Mahesh Reddy on December 7th, 2011 6:21 pm

Its very easy and useful to me

samson on December 8th, 2011 8:53 am

One more point:

1. If we created Interface we can add new methods easily, but abstract is not easily.
2. Interface act as Service layer its interact different types of two entities(node) but abstract is not.
3. Interface is high level of abstraction(fully abstract class) but abstract is next level of abstraction.

I have added some point. Please verify and let me know if it is correct or not?
Please forgive any typical and grammatical mistake.

Please send me if any feedback: murugadoit@gmail.com

Muruga G on December 18th, 2011 7:55 am

Take all :)

santosh on December 20th, 2011 9:25 am

Abstract class start with letter “A” and Interface starts with letter “I”.

Arabinda on December 20th, 2011 9:45 am

What is the purpose of using Abstract class????

Shaleen on December 23rd, 2011 6:15 am

Hi,please provide the Real-time examples for Interface and the Abstract class.So that every one can understand easily..

Jayaram on December 24th, 2011 4:21 pm

Hi Joe ,
when we have to use abstract class & interfaces can you explain

Balachandiran on December 25th, 2011 6:46 pm

If i create any reference variable to an interface and also i create the object of implementing the class.just mail me the difference

mallika.oleti@gmail.com on December 27th, 2011 3:02 pm

Hi Joe,

First of all its a nice blog. Congrats for writing and maintaining this blog.

On Dec 19th you have mentioned that “an interface can extend multiple interfaces”.
But java doesnt support multiple inhertance. Please explain your statement.

With Regards
Shiv

shiv on December 29th, 2011 12:35 pm

thanks joe for detailed explanation

maagi on December 30th, 2011 12:53 am

good explanation

Vijay Yatham on December 30th, 2011 4:46 am

Hi All,

I am new to java. Can you please explain what are the topics covered in J2EE? if i want to serve in Java field, what are all i need to learn..

Please help me.
-Thanks in advance

Rajesh on January 3rd, 2012 9:49 am

Hi All,

I am new to java. Can you please explain what are the topics covered in J2EE? if i want to serve in Java field, what are all i need to learn. and also please explain the ways

Please help me.
-Thanks in advance

Rajesh on January 3rd, 2012 9:50 am

what if abstract class implements two interfaces then it has to provide bodies for method declarations in interfaces or not?

Sandesh on January 4th, 2012 5:43 am

when we have to use abstract class & when we have to use interfaces can you explain

Anonymous on January 5th, 2012 6:24 am

Thank you,that the difference between them is clearly understood to me.Please explain in simple programatic way?

when we have to use abstract class & when we have to use interfaces can you explain?

bharath on January 5th, 2012 1:37 pm

Thank you for clearing doubts…..please send this book to my mail id…i have some more doubts

vishnugandhi on January 10th, 2012 12:04 pm

This differences can be found everywhere, say new things like
1. when to use Interface and when to use Abstract class
2. which one is efficient ?

Just give some practical programming scenarios.

Venkatesh Bestha on January 10th, 2012 5:09 pm

hello nyc blog

Anonymous on January 11th, 2012 10:39 am

hiiii gud source of info……keep goin!!

keith on January 11th, 2012 10:41 am

hello

keith on January 11th, 2012 10:42 am

catch
{quotient=divide(num1,num2);
cout<<"The quotient is "<<quotient<<endl;
}
try(char *exceptionString)
{
cout<<exceptionString:
}
wat is the error in this code……..

Anonymous on January 11th, 2012 11:07 am

Thank you sir it is really helpfull to me keep going on………..

rajesh on January 12th, 2012 11:08 am

Thanks a lot !!!!!!!!!!!!
you are The Best.
Thanks for writing and maintaining this nice blog. this is very nice blog.

pranav thipse.

Pranav Thipse on January 13th, 2012 5:22 pm

Hi Sir, really good blog.Very much impressed by the blog and the information displayed.It would be nice if you can start covering advanced topics also in this blog.

Sujay on January 18th, 2012 2:38 pm

Hi joe,
I know about Interfaces & Abstract classes. But can you please let me know why there are 2 different things Interface & Abstract class. When only Interface was enough(I guess, to do all the work.)

Kiran on January 19th, 2012 3:36 pm

i stil hav a lot of doubts.can u jst giv some example and also show whn to use wht?

pritz on January 19th, 2012 8:18 pm

it was really nice and in a very simple language… thanks joe

Anonymous on January 19th, 2012 10:49 pm

can any1 give me A simple program for managing abstract and interface which includes all aspects as joe said?

saravanan on January 21st, 2012 2:54 pm

can any body explain me constructor in detail…i don’t no the use of it pls. explain me..

neha on January 21st, 2012 8:02 pm

Thanks joe really helpful,But I’m having confusion about the term “extra indirection” used in 8th difference can u please explain what it is ?

siddu on January 24th, 2012 10:40 am

I have a doubt Joe,

In my current coding, my aim is to call the same method in different classes simultaneously. say class1 and class2 access add()method present in class3. My issue is a null pointer is getting displayed on execution. Can u guide me on this???

indian freak on January 24th, 2012 12:48 pm

can you please explain how the servlet communication done to other? explain different ways ?

yogesh on January 24th, 2012 2:46 pm

Thanks you for giving to this this answer.

Anonymous on January 29th, 2012 11:19 am

Some simple examples would be really great :)

pazuzu on January 30th, 2012 10:26 pm

this is awesome. thanx

Anonymous on February 1st, 2012 12:53 am

Please any one explain ,where we use Abstract calss and where we use interface .
Plese give example

Anuj on February 1st, 2012 5:59 pm

is an interface implicitly an abstract class?

Thanks…

Rajeev Kumar on February 2nd, 2012 12:41 pm

No. An interface is not an absrract class implicitly. Those two are interpreted in a different way.

Joe on February 2nd, 2012 7:27 pm

Good one. I had a look at the following website. that too looks good.

https://www.logicsmeet.com/forum/23488-Difference-Between-Abstract-Class-and-Interface-in-.NET.aspx

Balaji on February 2nd, 2012 8:49 pm

any book to get a good knowledge of java in simple and easy text?

Anonymous on February 2nd, 2012 10:16 pm

hi thanks for differences of abstract and interface .please send the complet book to my mail id are the address in url pattern (rakesh.gandua9@gmail.com)

rakesh on February 3rd, 2012 12:44 pm

hiii,,,,thanku for u r description plzzz send the java book which can be helpful in the basics point of view to my email id (kalyaniapple93@gmail.com)

Anonymous on February 3rd, 2012 6:05 pm

In the 7th difference pls give an example that how can we invoke abstract class if main exist…

navi on February 3rd, 2012 8:24 pm

pls send the best book for core java to my mail id i.e. anjaniatmakuri@yahoo.com

anjani on February 3rd, 2012 8:27 pm

Nice work again…but i don’t understand 7th difference,can u explain me in detail.

Matheen on February 5th, 2012 1:43 am

Is it possible to implement Iterator interface
Methods in our own class?
for example

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Collection;

/**
*
* @author arjun gm
*/
public interface java.util.Iterator {
public abstract boolean hasNext();
public abstract E next();
public abstract void remove();
}
public class MyInno implements Iterator {
boolean hasNext()
{
System.out.println(“Add”);
return true;
}
void remove()
{
System.out.println(“Sub”);
}
public static void main (String args[])
{
MyInno my=new MyInno();
my.remove();
}
}

Arjun on February 5th, 2012 11:57 am

why variables declared in interface are final by default and why all members are public by default?

when and where interfaces and abstract class is to be use?

Thanx…..

Musaddiquie Husain on February 6th, 2012 11:35 pm


Email:

about
I am Joe, author of this blog. I run this with loads of passion. If you are into java, you may find lot of interesting things around ...more about me. Google+
java badge
Home