CSC/ECE 517 Fall 2010/ch2 2f EC: Difference between revisions
No edit summary |
No edit summary |
||
Line 41: | Line 41: | ||
<br> | <br> | ||
< | <code> | ||
public class Bike { | public class Bike { <br> | ||
// Implementation of generic bike class | // Implementation of generic bike class <br> | ||
// ie. frame, wheels | // ie. frame, wheels<br> | ||
} | }<br> | ||
<br> | |||
public class MountainBike extends Bike { | public class MountainBike extends Bike {<br> | ||
// inherit generic bike components | // inherit generic bike components<br> | ||
// add shocks, fat tires, etc. | // add shocks, fat tires, etc.<br> | ||
} | }<br> | ||
<br> | |||
public class RoadBike extends Bike { | public class RoadBike extends Bike {<br> | ||
// inherit generic bike components | // inherit generic bike components<br> | ||
// add narrow tires, drop-style handlebars, etc. | // add narrow tires, drop-style handlebars, etc.<br> | ||
} | }<br> | ||
</ | </code> |
Revision as of 19:27, 21 September 2010
What is inheritance?
Inheritance is a functionality of object-oriented programming where a subclass obtains the contents and functionality of its superclass.
Instead of duplicating a class, a user can create a class that is a subclass of another class, inherit all of its functionality, and just add additional functionality.
For example, if the class "Bike" already exists and we wanted to create specific type of bicycle such as "MountainBike" or "RoadBike", we could just create classes that inherit from the "Bike" class and add the additional functionality we need.
Figure 1: Simple case of inheritance
The use of inheritance is convenient because we did not have to duplicate code to create a new subclass and increases code re-usability1. Also, if changes are made to the superclass, those changes will be reflected in the subclasses as well.
Single Inheritance
For the example above, where a subclass inherits from a single parent class, this is called single inheritance.
Object-oriented languages including Java, support single inheritance. A Java implementation would appear as below.
public class Bike {
// Implementation of generic bike class
// ie. frame, wheels
}
public class MountainBike extends Bike {
// inherit generic bike components
// add shocks, fat tires, etc.
}
public class RoadBike extends Bike {
// inherit generic bike components
// add narrow tires, drop-style handlebars, etc.
}