Saturday, March 1, 2014

Inheritance

Next Page

Inheritance

Def:  The  process  of implementing  the  "Parent-Child" relationship  between  two  or  more classes. As  a  part  of  this  "Inheritance"  implementation,  parent  and  child  classes  are  to  be implemented.
Inheritance

Advantage:  All  the  data  members  and  methods  of  the  parent class are accessible by child class. This is called as "Re-usability". That means the parent class members are re-usable in the child class.

  • The parent class can also be called as "Base" / "Super" class.
  • The child class can also be called as "Derived" / ―Sub" class.

Classification of Inheritance supported by C#:

1) Implementation Inheritance:
  • This is commonly used inheritance.
  • Whenever  a  class  is  derived  from  another  class,  it  can  be  called  as  "Implementation Inheritance"
  • As said above, all of the members of the super class are adopted by sub class.
2) Interface Inheritance:
  • This type of inheritance is taken from "Java".
  • Whenever  a  class  is  derived  from  an  interface,  it  can  be  called  as  "Interface Inheritance".
  • The  interface  is  similar  to  the  class,  but  doesn‘t  contain  the  method  definitions;  it contains the method declarations only. We discuss about the interfaces in-depth later

Types of Inheritance:

1)  Single Inheritance

Multi level inheritance
  • This is the simplest type of inheritance.
  • An  inheritance  relationship,  with  only  one  super  class and one sub class



                                               2) Hierarchical Inheritance

Single Inheritance

An  inheritance  relationship, with  only  one  super  class  and multiple sub classes.






3)  Multi-Level Inheritance
  • An inheritance relationship, with only one super class  and  multiple  sub  classes,  and  also extended  with  another  sub  class  from  the  first sub class.
  • In  other  words,  one  class  acts  as  super  class and sub class simultaneously.





                                            4) Multiple Inheritance

multiple inheritance
  • An  inheritance  relationship, with only multiple super classes and only one sub class.
  • "Multiple  Implementation Inheritance"  is  not  supported by  C#,  but "Multiple  Interface Inheritance" is supported by C#.


5)  Hybrid Inheritance
hybrid inheritance
  • An inheritance relationship that  contains  a combination  of  any  other two types of inheritances.
  • Ex:  Multiple + Hierarchical Inheritance
  •        Multiple + Multi Level Inheritance etc.
Note:  Other OOP languages like C++ support multiple inheritance. But C# and  VB.NET doesn‘t 
support  multiple  inheritance  to  avoid  some  practical  problems  while  developing  future  GUI 
applications like windows forms applications, web sites etc.
But instead, C# and VB.NET supports ―multiple interface inheritance‖, because it doesn‘t cause any practical problems.