Post on 22-Jun-2020
transcript
Chapter 10:
Introduction to Inheritance
Understanding Inheritance
• Inheritance
– The principle that you can apply knowledge of a general category to more specific objects
• Advantages of inheritance:
– Saves time
– Reduces the chance of errors
– Makes it easier to understand the inherited class
– Makes programs easier to write
2Microsoft Visual C# 2012, Fifth Edition
3Microsoft Visual C# 2012, Fifth Edition
Understanding Inheritance (cont’d.)
4Microsoft Visual C# 2012, Fifth Edition
Understanding Inheritance Terminology
• Base class
– A class that is used as a basis for inheritance
– Also known as the superclass or parent class
• Derived class or extended class
– A class that inherits from a base class
– A derived class always “is a” case or an instance of the more general base class
– Also known as a subclass or child class
• Ancestors
– A list of parent classes from which a child class is derived
• Inheritance is transitive
– A child inherits all the members of all its ancestors
5Microsoft Visual C# 2012, Fifth Edition
Extending Classes
• Use a single colon between the derived class name and its base class name
• Inheritance works only in one direction
– A child inherits from a parent
6Microsoft Visual C# 2012, Fifth Edition
Extending Classes (cont’d.)
7Microsoft Visual C# 2012, Fifth Edition
Extending Classes (cont’d.)
8Microsoft Visual C# 2012, Fifth Edition
Extending Classes (cont’d.)
9Microsoft Visual C# 2012, Fifth Edition
Using the protectedAccess Specifier
• Any derived class inherits all the data and methods of its base class – Including private data and methods
– You cannot use or modify private data and methods directly
• A protected data field or method:
– Can be used within its own class or in any classes extended from that class
– Cannot be used by “outside” classes
• protected methods should be used sparingly
10Microsoft Visual C# 2012, Fifth Edition
Using the protectedAccess Specifier (cont’d.)
11Microsoft Visual C# 2012, Fifth Edition
12Microsoft Visual C# 2012, Fifth Edition
Using the protectedAccess Specifier (cont’d.)
13Microsoft Visual C# 2012, Fifth Edition
Using the protectedAccess Specifier (cont’d.)
14Microsoft Visual C# 2012, Fifth Edition
Creating and Using Abstract Classes
• Abstract class
– One from which you cannot create concrete objects, but from which you can inherit
– Use the keyword abstract when you declare an abstract class
– Usually contains abstract methods, although methods are not required
• Abstract method– Has no method statements– Derived classes must override it using the keyword override
15Microsoft Visual C# 2012, Fifth Edition
Creating and Using Abstract Classes (cont’d.)
16Microsoft Visual C# 2012, Fifth Edition
Creating and Using Abstract Classes (cont’d.)
17Microsoft Visual C# 2012, Fifth Edition
Creating and Using Abstract Classes (cont’d.)
18Microsoft Visual C# 2012, Fifth Edition
19Microsoft Visual C# 2012, Fifth Edition
Creating and Using Abstract Classes (cont’d.)
Creating and Using Interfaces
• Multiple inheritance
– The ability to inherit from more than one class
– A difficult concept• Programmers encounter problems when they use it
– Prohibited in C#
• Interface
– An alternative to multiple inheritance
– A collection of methods that can be used by any class as long as the class provides a definition to override the interface’s abstract definitions
21Microsoft Visual C# 2012, Fifth Edition
Creating and Using Interfaces (cont’d.)
• In an abstract class, not all methods need to be abstract
• In an interface, all methods are abstract
22Microsoft Visual C# 2012, Fifth Edition
23Microsoft Visual C# 2012, Fifth Edition
(continues)
• You cannot instantiate concrete objects from either abstract classes or interfaces
• A class can inherit from only one base class
– However, it can implement any number of interfaces
• You create an interface when you want derived classes to override every method
27Microsoft Visual C# 2012, Fifth Edition
Creating and Using Interfaces (cont’d.)
Recognizing Inheritance in GUI Applications andRecapping the Benefits of Inheritance
• Every Form you create using Visual Studio’s IDE is a descendent of the Form class
28Microsoft Visual C# 2012, Fifth Edition
29Microsoft Visual C# 2012, Fifth Edition