Flash Components      Flash Menu      Flash Gallery      Flash Slideshow      FLV Player      Flash Form      MP3 Player      PhotoFlow      Flash CMS      3D Wall      Flash Scroller

Flash / AS

Silverlight

WPF

ASP.net / PHP

Photoshop

Forums

Blog

About

 


FlashComponents
  Galleries
  Slideshows
  Menus
  Design & Effects
  Audio & Video
  User Interface
  Templates

 

 

Intro to OOP in C#: Inheritance - Page 1
       by kirupa  |  11 February 2007

Inheritance is one of those topics that makes more sense when described via an example completely unrelated to programming. So, let's say I want to create a game populated by different characters. All of the characters will share certain characteristics, but some characters will have features unique only to them. In this world, the characters I want are Aliens, Bandits, Cowboys, and Pirates.

The following diagram shows what each character is capable of:

If you were to write a program that allowed all four of the above characters to exist, you can easily do so. You can have an Alien class, a Bandit class, a Cowboy class, and a Pirate class. Since you know what each character is capable of, your class will contain the appropriate methods for walking, talking, saying, maybe teleporting, running, etc. This approach is fine, but is there a better way of writing these four characters?

For example, all of the characters seem to share a Walk, Talk, and Say action. Doesn't it seem a bit wasteful to code a Walk, Talk, and Say method for each character separately? If you think it is wasteful (...and even if you don't!), this is where inheritance comes in.

Inheritance is an important part of Object Oriented Programming (OOP) because it allows you to build bigger blocks by reusing existing smaller blocks. To look at it in terms of what we are trying to do, instead of having four classes with each having the same implementation of Walk, Talk, and Say, how about you we create a separate Character class with the basic functionality and work from there as shown in the following diagram:

By placing the shared Walk, Talk, and Say components in a Character class and having my characters build on top of it, I am able to do several things:

  1. I make the code more modular by dividing larger pieces of code into smaller, more maintainable ones.
  2. I introduce a hierarchy where objects become more specialized as you move down the tree. A Character is pretty generic and can just walk, talk, and say something, but an Alien character, for example, does all that plus has the ability to teleport and hide.
  3. I can now reuse code. Instead of coding Walk, Talk, and Say for each of my characters, I only code it them once in my Character class.

There are other advantages, but the above three are what I think are the most important ones. So, now that you have a brief idea of what inheritance is and why it is useful, let's look at some code that brings the above example to life.

Onwards to the next page!

1 | 2 | 3


kirupa.com's fast and reliable hosting provided by Media Temple. flash components
The Text Animation Component for Flash CS3
Check out the great, high-quality flash extensions. Buy or sell stock flash, video, audio and fonts for as little as 50 cents at FlashDen.
Check out our high quality vector-based design packs! Flash Effect Components
flash menus, buttons and components Digicrafts Components
The best flash components ever! Entheos Flash Website Templates
Buy and sell FLAs at Ultrashock! Upload, publish, deliver. Secure hosting for your professional or academic video, presentations & more. Screencast.com
Purchase & Download Flash Components flash components
Learn how to advertise on kirupa.com