BTW - Observer is an interface rather than a class.
A class can implement an Observer interface when it wishes to tell other objects that some event of common interest is going to happen. Suppose, I am trying to write an online chat application and one of the condition is that every client that is connected to the chat server should be updated everytime any one says something.
So we might have Chat session to be an Observable and each client to be implementing Observer interface. So it lets you brodcast event notification to any number of interested clients.
Check out the further details here: http://www.javaworld.com/javaworld/jw-10-1996/jw-10-howto.html