Title: Class Inheritance
1Class Inheritance
- Implement Base Classes.
- Implement Derived Classes.
- Call Base Class Methods .
- Override Base Class Methods .
- Initialize Base Classes from Derived Classes.
2Inheritance (Textbook chapter 10)
- A primary object-oriented programming concept
- Main advantage code reuse
- Higher-level Base classes group common properties
and operations - Lower-level Derived classes define more specific
details
3Define Base and Derived classes
- using Systempublic class MyBaseClass  Â
public MyBaseClass()Â Â Â Â Â Â Â Â Â Â
Console.WriteLine(" MyBaseClass
Constructor.")Â Â Â Â Â Â public void
print()Â Â Â Â Â Â Â Â Â Â Console.WriteLine("I'm a
Base Class.")Â Â Â public class
MyDerivedClass MyBaseClass    public
MyDerivedClass () base()Â Â Â Â Â Â Â Â Â Â
Console.WriteLine(MyDerivedClass
Constructor.")Â Â Â Â Â Â public static void
Main()Â Â Â Â Â Â Â Â Â Â MyDerivedClass derived new
MyDerivedClass ()Â Â Â Â Â Â Â derived.print()Â Â Â
- Colon specifies inheritance (from a class or
interface). - Derived class inherited all public members in the
base class. - You can treat MyDerivedClass as MyBaseClass.
- During instantiation, base class constructor is
called before the constructor of the derived class
Output MyBaseClass Constructor.MyDDerivedClass
Constructor.I'm a Base Class.
4Initialize Base Class in Derived Class
- class BankAccount
-
- private double balance
- public BankAccount(double initialAmount)
-
- balance initialAmount
-
- //.(other BankAccount members)
-
- / Creates a constructor for the derived class
which calls the - base class constructor.
- /
- public class SimpleSavings2 BankAccount
-
- public SimpleSavings2(double amount)
base(amount)
indicates a call to a base class class
constructor. Keyword base represent the base
class.
5Override Base class methods
- using Systempublic class MyBaseClass  Â
public MyBaseClass()Â Â Â Â Â Â Â Â Â Â
Console.WriteLine(" MyBaseClass
Constructor.")Â Â Â Â Â Â public virtual void
print()Â Â Â Â Â Â Â Â Â Â Console.WriteLine("I'm a
Base Class.")Â Â Â public class
MyDerivedClass MyBaseClass    public
MyDerivedClass ()Â Â Â Â Â Â Â Â Â Â
Console.WriteLine(MyDerivedClass
Constructor.")Â Â Â Â Â Â public static void
Main()Â Â Â Â Â Â Â Â Â Â MyDerivedClass derived new
MyDerivedClass ()Â Â Â Â Â Â Â derived.print()Â Â Â
- A derived class automatically inherits the public
methods of its base class, - but it may choose to override some of them to
implement its own specific operations. - (Project 8 10.9)
1
2
public override void print()
Console.WriteLine(Im a Derived class)
Output MyBaseClass Constructor.MyDDerivedClass
Constructor.I'm a Derived Class.
6The Account Hierarchy
BankAccount balance GetBalance Deposit Withdraw
ReadAccount
Base class
Derived class
Derived class
- CheckingAccount overrides Withdraw method
inherited from BankAccount - In exercise 10.0, you need to add a ReadAccount
method to BankAccount and override it in
SavingsAccount and CheckingAccount.
7Testing code for Project 8
- Testing code
- http//www.cs.uiowa.edu/zhihwang/ta016/TestAccoun
ts.cs - For your reference
- http//www.cs.uiowa.edu/zhihwang/ta016/BankAccoun
t.cs - http//www.cs.uiowa.edu/zhihwang/ta016/SavingsAcc
ount.cs - http//www.cs.uiowa.edu/zhihwang/ta016/CheckingAc
count.cs