Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
Python and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Lua, etc
 
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
J709 - Java - Class Access
  [4398] Accessing variables across subroutine boundaries - Perl, Python, Java and Tcl - (2015-01-18)
  [3142] Private and Public - and things between - (2011-01-22)
  [2535] When should I use Java, Perl, PHP, or Python? - (2009-12-13)
  [2419] Where is my Java class? - (2009-09-24)
  [874] Who can use which access door? - (2006-09-21)

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


Back to
Java Beans, tag libraries and JSPs - what and why.
Previous and next
or
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., 2019: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/3047_Wha ... uages.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat