This week's giveaway is in the Spring forum.
We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!
See this thread for details.
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 REST with Spring (video course) this week in the Spring 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: 63534

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
Don't get me started about those stupid light bulbs.
subject: Extendable, but not instantiatable
jQuery in Action, 3rd edition