File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes Extendable, but not instantiatable Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Extendable, but not instantiatable" Watch "Extendable, but not instantiatable" New topic

Extendable, but not instantiatable

David Duran
Ranch Hand

Joined: Feb 11, 2002
Posts: 122
I want to make a class extendable, but not instantiatable. Is that even possible?
Bear Bibeault
Author and ninkuma

Joined: Jan 10, 2002
Posts: 63874

Declare it abstract, or give it a private constructor.

[Asking smart questions] [About Bear] [Books by Bear]
David Duran
Ranch Hand

Joined: Feb 11, 2002
Posts: 122
Thanks Bear.
I'll try the abstract idea, but the private constructor idea can't work. If a subclass extends a superclass, the superclass' constructorwill be called before the subclass'. If the superclass' constructor is private, it will through a compile-time error.
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974
One of the key purposes of making a class abstract is to prevent it from being instantiated. Abstract classes do not have to have abstract methods.

Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
I agree. Here's the link:
subject: Extendable, but not instantiatable
It's not a secret anymore!