I think you haven't fully understood abstract
class yet. You can't instantiate an abstract
class, which means you can't use new MyAbstractClass()
to create an instance. But that doesn't prevent
you from instantiate a subclass(which is concrete)
of the abstract class. A simple example will show
the advantage of having an abstract class:
abstract class MyAbstractClass { ... }
class MyConcreteClass1 extends MyAbstractClass { ... }
class MyConcreteClass2 extends MyAbstractClass { ... }
class Test