jQuery in Action, 3rd edition
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
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: 63865

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: http://aspose.com/file-tools
subject: Extendable, but not instantiatable
It's not a secret anymore!