<< Chapter < Page Chapter >> Page >
These learning objects concern inheritance in Java. One class can be derived from another, inheriting its fields and methods.

Learning objects for inheritance

Concept Inheritance is an important technique for structuring object-oriented programs. Given a class (called a superclass ) it can be extended to a subclass . The subclass inherits all the fields of the superclass and it can addadditional fields. The subclass inherits methods of the superclass and it can add new methods or override the inherited methods with its own versions.

These source code of these learning objects can be found in inheritance.zip .

LO Topic Java Files (.java) Prerequisites
"Inheriting fields" Inheriting fields Inheritance01
"Inheriting methods" Inheriting and overriding methods Inheritance02 1
"Dynamic dispatching" Dynamic dispatching Inheritance03 2
"Downcasting" Downcasting Inheritance04 3
"Heterogeneous data structures" Heterogeneous data structures Inheritance05 4
"Abstract classes" Abstract classes Inheritance06 5
"Equals" Equals Inheritance07A, B, C 2
"Clone" Clone Inheritance08 2
"Overloading vs. overriding" Overloading vs. overriding Inheritance09 3

Program The running example is a framework for the simulation of moving particles. There is a class Particle with a field position that is updated by the method newPosition . There are three subclasses:

  • AParticle is derived directly from Particle and adds the field spin . The method newPosition is overridden.
  • BParticle is derived directly from Particle and adds the field charge . The method newPosition is not overridden.
  • CParticle is derived directly from BParticle and thus indirectly from AParticle . It adds the field strange ; the method newPosition is overridden.

For each program the following initialization is performed and will not be explicitly mentioned for each learning object; instead, the step“the objects are created” will be listed:

  • Variable are declared and assigned the null value.
  • Memory is allocated for each object's fields and are given defaultvalues. For a subclass, these fields include all fields of its superclasses.
  • In the constructors, a subclass calls super to initialize the fields declared by the superclasses and then initializes its own fields.

Tip: Use Animation / Run Until ... to skip over the animation of the initialization.

Tip: Several of the LOs will ask you to check that a certain version of a method is called. This can be done by looking at the source code in the left panel:the method called is highlighted in blue.

Inheriting fields

Concept Subclasses inherit all the fields of its superclasses; they can also add fields of their own.

Program: Inheritance01.java

// Learning Object Inheritance01 //    inheriting fieldsclass Particle {     int position;      Particle(int p) {        position = p;     }      void newPosition(int delta) {        position = position + delta;     }}  class AParticle extends Particle {     double spin;      AParticle(int p, double s) {        super(p);         spin = s;    }      void newPosition(int delta) {     if (spin < delta)             position = position + delta;    } }  class BParticle extends Particle {    int charge;      BParticle(int p, int c) {         super(p);        charge = c;     }}  class CParticle extends BParticle {     boolean strange;      CParticle(int p, int c, boolean s) {        super(p, c);         strange = s;    }      void newPosition(int delta) {         if (strange)            position = position * charge;     }}  class Inheritance01 {     public static void main(/*String[] args*/) {         Particle  p = new Particle(10);        AParticle a = new AParticle(20, 2.0);         BParticle b = new BParticle(30, 3);        CParticle c = new CParticle(40, 4, true);          int pPosition = p.position;         int aPosition = a.position;        double aSpin  = a.spin;         int bPosition = b.position;        int bCharge = b.charge;         int cPosition = c.position;        int cCharge = c.charge;         boolean cStrange = c.strange;    } }

Questions & Answers

What is an atom
Mabel Reply
what are the connective tissue
Faith Reply
which part of the brain that controls human body
Mozanto Reply
describe the stage of eghopoisis
alupe Reply
what is a blood vessels
Sani Reply
what is plasma and is component
Fad Reply
what is the anterior
Tito Reply
Means front part of the body
Ibrahim
what is anatomy
Ruth Reply
describe the stage of ehopoisis
alupe
study of structure
Sakinat
To better understand how the different part of the body works. To understand the physiology of the various structures in the body. To differentiate the systems of the human body .
Roseann Reply
what is hypogelersomia
aliyu Reply
what are the parts of the female reproductive system?
Orji Reply
what is anatomy
Divinefavour Reply
what are the six types of synovial joints and their ligaments
Darlington Reply
draw the six types of synovial joint and their ligaments
Darlington
System of human beings
Katumi Reply
System in humans body
Katumi
Diagram of animals and plants cell
Favour Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Learning objects for java (with jeliot). OpenStax CNX. Dec 28, 2009 Download for free at http://cnx.org/content/col10915/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Learning objects for java (with jeliot)' conversation and receive update notifications?

Ask