SlideShare a Scribd company logo
Programming in C#
Inheritance and Polymorphism
Renas R. Rekany
2018
Inheritance
▪ Inheritance allows a software developer to derive a new
class from an existing one.
▪ The existing class is called the parent, super, or base class.
▪ The derived class is called a child or subclass.
▪ The child inherits characteristics of the parent.
▪ Methods and data defined for the parent class.
▪ The child has special rights to the parents methods and data.
▪ Public access like anyone else
▪ Protected access available only to child classes.
▪ The child has its own unique behaviors and data.
Inheritance
▪ Inheritance relationships
are often shown
graphically in a class
diagram, with the arrow
pointing to the parent
class.
▪ Inheritance should create a
relationship, meaning the
child is a more specific
version of the parent.
Animal
Bird
Declaring a Derived Class
▪ Define a new class DerivedClass which extends
BaseClass
class BaseClass
{
// class contents
}
class DerivedClass : BaseClass
{
// class contents
}
Controlling Inheritance
▪ A child class inherits the methods and data defined for the
parent class; however, whether a data or method member of
a parent class is accessible in the child class depends on the
visibility modifier of a member.
▪ Variables and methods declared with private visibility are
not accessible in the child class
▪ However, a private data member defined in the parent class is still
part of the state of a derived class.
▪ Variables and methods declared with public visibility are
accessible; but public variables violate our goal of
encapsulation
▪ There is a third visibility modifier that helps in inheritance
situations: protected.
Inheritance
class color
{ public color() {MessageBox.Show("color"); }
public void fill(string s) { (Messagebox.Show(s); }
}
class green : color
{ public green() {MessageBox.Show ("green"); } }
private void button1_Click(object sender, EventArgs e)
{ green g = new green();
g.fill("red");
}
Inheritance
class animal
{ public animal() {MessageBox.Show("animal"); }
public void talk() {MessageBox.Show("animal talk"); }
public void greet() {MessageBox.Show("animal say hello"); } }
class dog : animal
{ public dog() {MessageBox.Show("dog"); }
public void sing() {MessageBox.Show("dog can sing"); } }
private void button1_Click(object sender, EventArgs e)
{ animal a = new animal();
a.talk();
a.greet();
dog d = new dog();
d.sing();
d.talk();
d.greet();
}
Notes about Inheritance
➢ Constructor can't be inheritance, they just invoked.
➢ First call base then derived
➢ Destructor can't be inheritance they just invoked.
➢ First call derived then base
Example
➢ Calculation
Add, Sub
➢ Calculation2
Mult, Div
Calculation1
Calculation2
Inheritance
class animal
{ public animal() {MessageBox.Show("animal"); }
public void talk() {MessageBox.Show("animal talk"); }
public void greet() {MessageBox.Show("animal say hello"); }
~animal() {MessageBox.Show("animal Destructor"); } }
class dog : animal
{ public dog() {MessageBox.Show("dog"); }
public void sing() {MessageBox.Show("dog can sing"); }
~dog() {MessageBox.Show("dog Destructor"); } }
private void button1_Click(object sender, EventArgs e)
{ animal a = new animal();
a.talk();
a.greet();
dog d = new dog();
d.sing();
d.talk();
d.greet(); }
Examples:
Base Classes and Derived Classes
Examples:
Base Classes and Derived Classes
Base class Derived classes
Student GraduateStudent
UndergraduateStudent
Shape Circle
Triangle
Rectangle
Loan CarLoan
HomeImprovementLoan
MortgageLoan
Employee FacultyMember
StaffMember
Account CheckingAccount
SavingsAccount
Single Inheritance
▪ Some languages, e.g., C++, allow Multiple
inheritance, which allows a class to be
derived from two or more classes, inheriting
the members of all parents.
▪ C# and Java support single inheritance,
meaning that a derived class can have only
one parent class.
Class Hierarchies
▪ A child class of one parent can be the parent
of another child, forming a class hierarchy
Animal
Reptile Bird Mammal
Snake Lizard BatHorseParrot
Class Hierarchies
CommunityMember
Employee Student Alumnus
Faculty Staff
Professor Instructor
GraduateUnder
Class Hierarchies
Shape
TwoDimensionalShape ThreeDimensionalShape
Sphere Cube CylinderTriangleSquareCircle
Class Hierarchies
▪ An inherited member is continually passed
down the line
▪ Inheritance is transitive.
▪ Good class design puts all common features
as high in the hierarchy as is reasonable.
Avoids redundant code.
References and Inheritance
▪ An object reference can refer to an object of its
class, or to an object of any class derived from it by
inheritance.
▪ For example, if the Holiday class is used to derive a
child class called Friday, then a Holiday reference
can be used to point to a Fridayobject.
Holiday day;
day = new Holiday();
…
day = new Friday();
Executive
- bonus : double
+ AwardBonus(execBonus : double) : void
+ Pay() : double
Hourly
- hoursWorked : int
+ AddHours(moreHours : int) : void
+ ToString() : string
+ Pay() : double
Volunteer
+ Pay() : double
Employee
# socialSecurityNumber : String
# payRate : double
+ ToString() : string
+ Pay() : double
Polymorphism via Inheritance
StaffMember
# name : string
# address : string
# phone : string
+ ToString() : string
+ Pay() : double
Type of Polymorphism
 At run time, objects of a derived class may be treated as objects of a
base class in places such as method parameters and collections or arrays.
When this occurs, the object's declared type is no longer identical to its
run-time type.
 Base classes may define and implement virtual methods, and derived
classes can override them, which means they provide their own
definition and implementation. At run-time, when client code calls the
method, the CLR looks up the run-time type of the object, and invokes
that override of the virtual method. Thus in your source code you can
call a method on a base class, and cause a derived class's version of the
method to be executed.
Overriding Methods
 C# requires that all class definitions
communicate clearly their intentions.
 The keywords virtual, override and new provide
this communication.
 If a base class method is going to be overridden
it should be declared virtual.
 A derived class would then indicate that it
indeed does override the method with the
override keyword.
Overriding Methods
▪ A child class can override the definition of an
inherited method in favor of its own
▪ That is, a child can redefine a method that it
inherits from its parent
▪ The new method must have the same signature
as the parent's method, but can have a different
implementation.
▪ The type of the object executing the method
determines which version of the method is
invoked.
Overriding Methods
 If a derived class wishes to hide a method in
the parent class, it will use the new keyword.
This should be avoided.
Overloading vs. Overriding
▪ Overloading deals with
multiple methods in the
same class with the same
name but different
signatures
▪ Overloading lets you
define a similar
operation in different
ways for different data
▪ Example:
▪ int foo(string[] bar);
▪ int foo(int bar1, float a);
▪ Overriding deals with two
methods, one in a parent
class and one in a child
class, that have the same
signature
▪ Overriding lets you define
a similar operation in
different ways for different
object types
▪ Example:
▪ class Base {
▪ public virtual int foo() {}
}
▪ class Derived {
▪ public override int foo()
{}}
Example
public class Base
{
public virtual void Show()
{
MessageBox.Show("Show From Base Class.");
} }
public class Derived : Base
{
public override void Show()
{
MessageBox.Show("Show From Derived Class.");
} }

More Related Content

What's hot (20)

Ruby and DCI
Ruby and DCI
Simon Courtois
 
inheritance in C++
inheritance in C++
tayyaba nawaz
 
Inheritance
Inheritance
Loy Calazan
 
Inheritance in java
Inheritance in java
HarshitaAshwani
 
Java Inheritance
Java Inheritance
VINOTH R
 
Java unit2
Java unit2
Abhishek Khune
 
PHP Classes and OOPS Concept
PHP Classes and OOPS Concept
Dot Com Infoway - Custom Software, Mobile, Web Application Development and Digital Marketing Company
 
Inheritance
Inheritance
Tech_MX
 
Introduction to php oop
Introduction to php oop
baabtra.com - No. 1 supplier of quality freshers
 
Advance OOP concepts in Python
Advance OOP concepts in Python
Sujith Kumar
 
Anton Kasyanov, Introduction to Python, Lecture5
Anton Kasyanov, Introduction to Python, Lecture5
Anton Kasyanov
 
Chap 3php array part 2
Chap 3php array part 2
monikadeshmane
 
Php object orientation and classes
Php object orientation and classes
Kumar
 
Object-Oriented Programming with C#
Object-Oriented Programming with C#
Svetlin Nakov
 
Class 7 2ciclo
Class 7 2ciclo
Carlos Alcivar
 
Object Oriented Programming in PHP
Object Oriented Programming in PHP
Lorna Mitchell
 
.NET F# Inheritance and operator overloading
.NET F# Inheritance and operator overloading
DrRajeshreeKhande
 
inheritance c++
inheritance c++
Muraleedhar Sundararajan
 
Python advance
Python advance
Mukul Kirti Verma
 
Python unit 3 m.sc cs
Python unit 3 m.sc cs
KALAISELVI P
 

Similar to Object oriented programming inheritance (20)

Visula C# Programming Lecture 7
Visula C# Programming Lecture 7
Abou Bakr Ashraf
 
CSharp_03_Inheritance_introduction_with_examples
CSharp_03_Inheritance_introduction_with_examples
Ranjithsingh20
 
Inheritance.pptx
Inheritance.pptx
PRIYACHAURASIYA25
 
Xamarin: Inheritance and Polymorphism
Xamarin: Inheritance and Polymorphism
Eng Teong Cheah
 
20 Object-oriented programming principles
20 Object-oriented programming principles
maznabili
 
SAD04 - Inheritance
SAD04 - Inheritance
Michael Heron
 
Ganesh groups
Ganesh groups
Ganesh Amirineni
 
Opps
Opps
Lalit Kale
 
Object oriented programming Fundamental Concepts
Object oriented programming Fundamental Concepts
Bharat Kalia
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
Intro C# Book
 
Diving in OOP (Day 3): Polymorphism and Inheritance (Dynamic Binding/Run Time...
Diving in OOP (Day 3): Polymorphism and Inheritance (Dynamic Binding/Run Time...
Akhil Mittal
 
Unit 7 inheritance
Unit 7 inheritance
atcnerd
 
Diving in OOP (Day 2): Polymorphism and Inheritance (Inheritance)
Diving in OOP (Day 2): Polymorphism and Inheritance (Inheritance)
Akhil Mittal
 
Ppt of c++ vs c#
Ppt of c++ vs c#
shubhra chauhan
 
29csharp
29csharp
Sireesh K
 
29c
29c
Sireesh K
 
Inheritance
Inheritance
abhay singh
 
Core java oop
Core java oop
Parth Shah
 
Object Oriented Programming C#
Object Oriented Programming C#
Muhammad Younis
 
Object Oriented Programming (OOP) Introduction
Object Oriented Programming (OOP) Introduction
SamuelAnsong6
 
Visula C# Programming Lecture 7
Visula C# Programming Lecture 7
Abou Bakr Ashraf
 
CSharp_03_Inheritance_introduction_with_examples
CSharp_03_Inheritance_introduction_with_examples
Ranjithsingh20
 
Xamarin: Inheritance and Polymorphism
Xamarin: Inheritance and Polymorphism
Eng Teong Cheah
 
20 Object-oriented programming principles
20 Object-oriented programming principles
maznabili
 
Object oriented programming Fundamental Concepts
Object oriented programming Fundamental Concepts
Bharat Kalia
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
Intro C# Book
 
Diving in OOP (Day 3): Polymorphism and Inheritance (Dynamic Binding/Run Time...
Diving in OOP (Day 3): Polymorphism and Inheritance (Dynamic Binding/Run Time...
Akhil Mittal
 
Unit 7 inheritance
Unit 7 inheritance
atcnerd
 
Diving in OOP (Day 2): Polymorphism and Inheritance (Inheritance)
Diving in OOP (Day 2): Polymorphism and Inheritance (Inheritance)
Akhil Mittal
 
Object Oriented Programming C#
Object Oriented Programming C#
Muhammad Younis
 
Object Oriented Programming (OOP) Introduction
Object Oriented Programming (OOP) Introduction
SamuelAnsong6
 
Ad

More from Renas Rekany (20)

decision making
decision making
Renas Rekany
 
Artificial Neural Network
Artificial Neural Network
Renas Rekany
 
AI heuristic search
AI heuristic search
Renas Rekany
 
AI local search
AI local search
Renas Rekany
 
AI simple search strategies
AI simple search strategies
Renas Rekany
 
C# p9
C# p9
Renas Rekany
 
C# p8
C# p8
Renas Rekany
 
C# p7
C# p7
Renas Rekany
 
C# p6
C# p6
Renas Rekany
 
C# p5
C# p5
Renas Rekany
 
C# p4
C# p4
Renas Rekany
 
C# p3
C# p3
Renas Rekany
 
C# p2
C# p2
Renas Rekany
 
C# p1
C# p1
Renas Rekany
 
C# with Renas
C# with Renas
Renas Rekany
 
Object oriented programming
Object oriented programming
Renas Rekany
 
Renas Rajab Asaad
Renas Rajab Asaad
Renas Rekany
 
Renas Rajab Asaad
Renas Rajab Asaad
Renas Rekany
 
Renas Rajab Asaad
Renas Rajab Asaad
Renas Rekany
 
Renas Rajab Asaad
Renas Rajab Asaad
Renas Rekany
 
Ad

Recently uploaded (20)

LDMMIA GRAD Student Check-in Orientation Sampler
LDMMIA GRAD Student Check-in Orientation Sampler
LDM & Mia eStudios
 
How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
The Man In The Back – Exceptional Delaware.pdf
The Man In The Back – Exceptional Delaware.pdf
dennisongomezk
 
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Veera Pallapu
 
BINARY files CSV files JSON files with example.pptx
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDM & Mia eStudios
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
THERAPEUTIC COMMUNICATION included definition, characteristics, nurse patient...
THERAPEUTIC COMMUNICATION included definition, characteristics, nurse patient...
parmarjuli1412
 
What is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
Rai dyansty Chach or Brahamn dynasty, History of Dahir History of Sindh NEP.pptx
Rai dyansty Chach or Brahamn dynasty, History of Dahir History of Sindh NEP.pptx
Dr. Ravi Shankar Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
Sustainable Innovation with Immersive Learning
Sustainable Innovation with Immersive Learning
Leonel Morgado
 
LDMMIA Spring Ending Guest Grad Student News
LDMMIA Spring Ending Guest Grad Student News
LDM & Mia eStudios
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
Introduction to Generative AI and Copilot.pdf
Introduction to Generative AI and Copilot.pdf
TechSoup
 
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Rajdeep Bavaliya
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
aditya23173
 
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
Arshad Shaikh
 
LDMMIA GRAD Student Check-in Orientation Sampler
LDMMIA GRAD Student Check-in Orientation Sampler
LDM & Mia eStudios
 
How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
The Man In The Back – Exceptional Delaware.pdf
The Man In The Back – Exceptional Delaware.pdf
dennisongomezk
 
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Webcrawler_Mule_AIChain_MuleSoft_Meetup_Hyderabad
Veera Pallapu
 
BINARY files CSV files JSON files with example.pptx
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDMMIA Free Reiki Yoga S9 Grad Level Intuition II
LDM & Mia eStudios
 
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
FEBA Sofia Univercity final diplian v3 GSDG 5.2025.pdf
ChristinaFortunova
 
THERAPEUTIC COMMUNICATION included definition, characteristics, nurse patient...
THERAPEUTIC COMMUNICATION included definition, characteristics, nurse patient...
parmarjuli1412
 
What is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
Sustainable Innovation with Immersive Learning
Sustainable Innovation with Immersive Learning
Leonel Morgado
 
LDMMIA Spring Ending Guest Grad Student News
LDMMIA Spring Ending Guest Grad Student News
LDM & Mia eStudios
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
Introduction to Generative AI and Copilot.pdf
Introduction to Generative AI and Copilot.pdf
TechSoup
 
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Rajdeep Bavaliya
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
aditya23173
 
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
PEST OF WHEAT SORGHUM BAJRA and MINOR MILLETS.pptx
Arshad Shaikh
 

Object oriented programming inheritance

  • 1. Programming in C# Inheritance and Polymorphism Renas R. Rekany 2018
  • 2. Inheritance ▪ Inheritance allows a software developer to derive a new class from an existing one. ▪ The existing class is called the parent, super, or base class. ▪ The derived class is called a child or subclass. ▪ The child inherits characteristics of the parent. ▪ Methods and data defined for the parent class. ▪ The child has special rights to the parents methods and data. ▪ Public access like anyone else ▪ Protected access available only to child classes. ▪ The child has its own unique behaviors and data.
  • 3. Inheritance ▪ Inheritance relationships are often shown graphically in a class diagram, with the arrow pointing to the parent class. ▪ Inheritance should create a relationship, meaning the child is a more specific version of the parent. Animal Bird
  • 4. Declaring a Derived Class ▪ Define a new class DerivedClass which extends BaseClass class BaseClass { // class contents } class DerivedClass : BaseClass { // class contents }
  • 5. Controlling Inheritance ▪ A child class inherits the methods and data defined for the parent class; however, whether a data or method member of a parent class is accessible in the child class depends on the visibility modifier of a member. ▪ Variables and methods declared with private visibility are not accessible in the child class ▪ However, a private data member defined in the parent class is still part of the state of a derived class. ▪ Variables and methods declared with public visibility are accessible; but public variables violate our goal of encapsulation ▪ There is a third visibility modifier that helps in inheritance situations: protected.
  • 6. Inheritance class color { public color() {MessageBox.Show("color"); } public void fill(string s) { (Messagebox.Show(s); } } class green : color { public green() {MessageBox.Show ("green"); } } private void button1_Click(object sender, EventArgs e) { green g = new green(); g.fill("red"); }
  • 7. Inheritance class animal { public animal() {MessageBox.Show("animal"); } public void talk() {MessageBox.Show("animal talk"); } public void greet() {MessageBox.Show("animal say hello"); } } class dog : animal { public dog() {MessageBox.Show("dog"); } public void sing() {MessageBox.Show("dog can sing"); } } private void button1_Click(object sender, EventArgs e) { animal a = new animal(); a.talk(); a.greet(); dog d = new dog(); d.sing(); d.talk(); d.greet(); }
  • 8. Notes about Inheritance ➢ Constructor can't be inheritance, they just invoked. ➢ First call base then derived ➢ Destructor can't be inheritance they just invoked. ➢ First call derived then base
  • 9. Example ➢ Calculation Add, Sub ➢ Calculation2 Mult, Div Calculation1 Calculation2
  • 10. Inheritance class animal { public animal() {MessageBox.Show("animal"); } public void talk() {MessageBox.Show("animal talk"); } public void greet() {MessageBox.Show("animal say hello"); } ~animal() {MessageBox.Show("animal Destructor"); } } class dog : animal { public dog() {MessageBox.Show("dog"); } public void sing() {MessageBox.Show("dog can sing"); } ~dog() {MessageBox.Show("dog Destructor"); } } private void button1_Click(object sender, EventArgs e) { animal a = new animal(); a.talk(); a.greet(); dog d = new dog(); d.sing(); d.talk(); d.greet(); }
  • 11. Examples: Base Classes and Derived Classes
  • 12. Examples: Base Classes and Derived Classes Base class Derived classes Student GraduateStudent UndergraduateStudent Shape Circle Triangle Rectangle Loan CarLoan HomeImprovementLoan MortgageLoan Employee FacultyMember StaffMember Account CheckingAccount SavingsAccount
  • 13. Single Inheritance ▪ Some languages, e.g., C++, allow Multiple inheritance, which allows a class to be derived from two or more classes, inheriting the members of all parents. ▪ C# and Java support single inheritance, meaning that a derived class can have only one parent class.
  • 14. Class Hierarchies ▪ A child class of one parent can be the parent of another child, forming a class hierarchy Animal Reptile Bird Mammal Snake Lizard BatHorseParrot
  • 15. Class Hierarchies CommunityMember Employee Student Alumnus Faculty Staff Professor Instructor GraduateUnder
  • 17. Class Hierarchies ▪ An inherited member is continually passed down the line ▪ Inheritance is transitive. ▪ Good class design puts all common features as high in the hierarchy as is reasonable. Avoids redundant code.
  • 18. References and Inheritance ▪ An object reference can refer to an object of its class, or to an object of any class derived from it by inheritance. ▪ For example, if the Holiday class is used to derive a child class called Friday, then a Holiday reference can be used to point to a Fridayobject. Holiday day; day = new Holiday(); … day = new Friday();
  • 19. Executive - bonus : double + AwardBonus(execBonus : double) : void + Pay() : double Hourly - hoursWorked : int + AddHours(moreHours : int) : void + ToString() : string + Pay() : double Volunteer + Pay() : double Employee # socialSecurityNumber : String # payRate : double + ToString() : string + Pay() : double Polymorphism via Inheritance StaffMember # name : string # address : string # phone : string + ToString() : string + Pay() : double
  • 20. Type of Polymorphism  At run time, objects of a derived class may be treated as objects of a base class in places such as method parameters and collections or arrays. When this occurs, the object's declared type is no longer identical to its run-time type.  Base classes may define and implement virtual methods, and derived classes can override them, which means they provide their own definition and implementation. At run-time, when client code calls the method, the CLR looks up the run-time type of the object, and invokes that override of the virtual method. Thus in your source code you can call a method on a base class, and cause a derived class's version of the method to be executed.
  • 21. Overriding Methods  C# requires that all class definitions communicate clearly their intentions.  The keywords virtual, override and new provide this communication.  If a base class method is going to be overridden it should be declared virtual.  A derived class would then indicate that it indeed does override the method with the override keyword.
  • 22. Overriding Methods ▪ A child class can override the definition of an inherited method in favor of its own ▪ That is, a child can redefine a method that it inherits from its parent ▪ The new method must have the same signature as the parent's method, but can have a different implementation. ▪ The type of the object executing the method determines which version of the method is invoked.
  • 23. Overriding Methods  If a derived class wishes to hide a method in the parent class, it will use the new keyword. This should be avoided.
  • 24. Overloading vs. Overriding ▪ Overloading deals with multiple methods in the same class with the same name but different signatures ▪ Overloading lets you define a similar operation in different ways for different data ▪ Example: ▪ int foo(string[] bar); ▪ int foo(int bar1, float a); ▪ Overriding deals with two methods, one in a parent class and one in a child class, that have the same signature ▪ Overriding lets you define a similar operation in different ways for different object types ▪ Example: ▪ class Base { ▪ public virtual int foo() {} } ▪ class Derived { ▪ public override int foo() {}}
  • 25. Example public class Base { public virtual void Show() { MessageBox.Show("Show From Base Class."); } } public class Derived : Base { public override void Show() { MessageBox.Show("Show From Derived Class."); } }