Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
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.

In Java, 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].

Perl'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.

In Python (new style classes) you always inherit from an object:

>>> class Snake(object):
...     pass

>>> 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)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__',
'__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

(written 2010-11-13)

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
J710 - Java - Extending Classes and More
  [656] Think about your design even if you don't use full UML - (2006-03-24)
  [831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
  [1066] Final, Finally and Finalize - three special words in Java - (2007-02-05)
  [1217] What are factory and singleton classes? - (2007-06-04)
  [1294] An example of Java Inheritance from scratch - (2007-08-00)
  [1501] Java - using super to call a method in the parent class - (2008-01-10)
  [1538] Teaching Object Oriented Java with Students and Ice Cream - (2008-02-12)
  [1556] Java - a demonstration of inheritance on just one page - (2008-02-26)
  [1819] Calling base class constructors - (2008-10-03)
  [2185] Abstract Classes - Java - (2009-05-16)
  [2434] Abstract classes, Interfaces, PHP and Java - (2009-10-03)
  [2604] Tips for writing a test program (Ruby / Python / Java) - (2010-01-29)
  [2860] What methods are available on this Java object? - (2010-07-08)
  [4334] Splitting out code into name blocks for clarity and reusability - (2014-11-30)
  [4366] Changing what operators do on objects - a comparison across different programming languages - (2014-12-26)
  [4394] Philosophy behind object design - and how I applied in to a Java example - (2015-01-14)
  [4419] Java Inheritance example - group of classes - step by step - (2015-02-08)
  [4422] Objects - from physical to virtual or abstract - Java - (2015-02-10)

J709 - Java - Class Access
  [874] Who can use which access door? - (2006-09-21)
  [2419] Where is my Java class? - (2009-09-24)
  [2535] When should I use Java, Perl, PHP, or Python? - (2009-12-13)
  [3142] Private and Public - and things between - (2011-01-22)
  [4398] Accessing variables across subroutine boundaries - Perl, Python, Java and Tcl - (2015-01-18)

Back to
Java Beans, tag libraries and JSPs - what and why.
Previous and next
Horse's mouth home
Forward to
String handling - from first steps to practical examples
Some other Articles
Positively reforming the system - could it be done?
Views of Melksham - November 2010
Computer Graphics is fun - even if Java Applets are Old Hat
String handling - from first steps to practical examples
What is a universal superclass? Java / Perl / Python / Other OO languages
Java 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 compiling
Gathering information - logging - with log4j. First steps.
Least Common Ancestor - what is it, and a Least Common Ancestor algorithm implemented in Perl
4759 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, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page

This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - 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: "Yes ... my error. I said "all" when I should not have done ..."
Visitor Ranking 3.5 (5=excellent, 1=poor)

Comment by Graham Ellis (published 2011-02-18)
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 (published 2011-02-18)
"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

© WELL HOUSE CONSULTANTS LTD., 2024: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/3047_Wha ... uages.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb