One of the most important topics for newcomers to OO (Object oriented) programming to learn is how to design their classes and make best use of inheritance, and I find myself writing new examples from first principles during our courses. That way, the delegates learn how to actually do the job - they're NOT just presented with a "here is one I wrote earlier" and left to struggle!
In order to let the delegates then refer to the code I wrote, I've put it up on our wiki ... the web formatting isn't very tidy, but it's a great "all in one place" reference for them when they come to do their own practical.
The first example is at
http://www.wellho.net/share/javainherit.html. It's a base class called "Animal" with two subclasses called "Farm" and "Pet" with the whole thing being tested by "Anitest". The beauty of using inheritance in this way is that you can put the common code in "Animal" and then just the farm-specific or pet-specific stuff into the Farm and Pet classes - saves code duplication.
That first example isn't perfect, though. We want to extend it as follows:
a) To have an array of animals that we can loop through
b) To use a utility function to handle multiple similar methods
c) To provide static methods than work on the whole
d) To set up Animal such that we can force all extended classes to have specific enhancements ("abstract")
e) To provide functions to compare two or more objects in a way we define.
These extras are in my second example at
http://www.wellho.net/share/javainherit2.html.
(written 2007-08-00, updated 2009-01-22)
Associated topics are indexed under
J710 - Java - Extending Classes and More [3047] What is a universal superclass? Java / Perl / Python / Other OO languages - (2010-11-13)
[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)
[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)
Some other Articles
From LeedsStuffing content into a web page - easy maintainanceAn example of Java Inheritance from scratchWeymouth - Sunny Summer Sunday afternoonDHCP automatic IP address v Static IPDay trip to WeymouthBadges, Breakfasts and TriggerPure PerlLinux run states, shell special commands, and directory structuresWork and play at Well House Manor - Football and Shell Shortcuts