yeah, imagine if u have a rule saying: a person HAVE to be either male or female. Can't be both, can't be neither. With abstract class you can have such a design:
Abstract class Person
class Male extends Person
class Female extends Person
it means that you cant instantiate a sexless person. You have to instantiate a Male or a Female, not a Person. The concept of Abstract class allows you to enforce rules like that (note that the above is just example... dont take the design personally) and still maintain some
polymorphism power on it.
Person p1 = new Male()
Person p2 = new Female()
p1.dance() -> does michael jackson dance, or something
p2.dance() -> does demi moore striptease dance, or something