What is a universal superclass? Java / Perl / Python / Other OO languages
In any object oriented language, all objects will ultimately inherit from a base class supplied with the language, whether it's explicitly stated or not. That's because every class that you write will need that basic facilities to set up members (objects), and it's also useful to provide you with a handful of standard methods that will work for each and every object - either in their default form, or overridden if you want your class to do something a bit differently.
, everything inherits from the base class Object
- directly if you define your class without an extends
clause, or indirectly through the heirarcy that you mayhave chosen to set up. Methods provided include finalize
(a default destructor), getClass
to find out about the type of an object [use with care!], toString
which defines how an object is converted to a String, and equal
which is used to test whether two objects are considered to be equal. The latter two of these are methods that you'll often want to override in your own classes, and there's a new example on our web site [here]
's UNIVERSAL class includes methods isa
to see if an object is of a particular type (literally "is a"), can
to test whether a particular method can be run on an object, and DOES
to check whether an object can perform a paricular role.
(new style classes) you always inherit from an object:
>>> class Snake(object):
>>> spit = Snake()
And you'll find that you get a whole wide range of things (other objects - in Python everything is an object) provided to you by the object class:
>>> dir(spit) (written 2010-11-13)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__',
'__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
Associated topics are indexed underJ709 - Java - Class Access 
Private and Public - and things between - (2011-01-22) 
When should I use Java, Perl, PHP, or Python? - (2009-12-13) 
Where is my Java class? - (2009-09-24) 
Who can use which access door? - (2006-09-21)J710 - Java - Extending Classes and More 
What methods are available on this Java object? - (2010-07-08) 
Tips for writing a test program (Ruby / Python / Java) - (2010-01-29) 
Abstract classes, Interfaces, PHP and Java - (2009-10-03) 
Abstract Classes - Java - (2009-05-16) 
Calling base class constructors - (2008-10-03) 
Java - a demonstration of inheritance on just one page - (2008-02-26) 
Teaching Object Oriented Java with Students and Ice Cream - (2008-02-12) 
Java - using super to call a method in the parent class - (2008-01-10) 
An example of Java Inheritance from scratch - (2007-08-00) 
What are factory and singleton classes? - (2007-06-04) 
Final, Finally and Finalize - three special words in Java - (2007-02-05) 
Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13) 
Think about your design even if you don't use full UML - (2006-03-24)
Some other Articles
Positively reforming the system - could it be done?Views of Melksham - November 2010Computer Graphics is fun - even if Java Applets are Old HatString handling - from first steps to practical examplesWhat is a universal superclass? Java / Perl / Python / Other OO languagesJava Beans, tag libraries and JSPs - what and why.After Course Resources - do we publish sample answers. Example from Java Exceptions module.Changing a Servlet - more that just editing and compilingGathering information - logging - with log4j. First steps.Least Common Ancestor - what is it, and a Least Common Ancestor algorithm implemented in Perl
4090 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
Comment by Graham Ellis
|Comment: "Yes ... my error. I said "all" when I should not have done ..."|
Visitor Ranking 3.5 (5=excellent, 1=poor)
Yes ... my error. I said "all" when I should not have done so, as the interitance from a standard base class does not apply in C++. C++ is rather different to the other OO languages we run courses on, as it's what I would describe as a low level language with an OO layer added on top of it. [#3891]Comment by Anon
"In any object oriented language, all objects will ultimately inherit from a base class supplied with the language, whether it's explicitly stated or not."
Wrong. C++ does not do this. [#3871]
You can Add a comment or ranking
or edit your own comments
Average page ranking - 3.5