Download presentation
Presentation is loading. Please wait.
Published byQuinn Toby Modified over 10 years ago
1
LOGO Lecturer: Abdullahi Salad Abdi May 1, 2015 1 Object Oriented Programming in C++
2
LOGO Chapter 9 Inheritance & Polymorphism Class: BIT02
3
LOGO Objectives Inheritance categories of Inheritance Protected Access Specifier Types of Inheritance Public Private Protected Derived Class Constructors Multiple Inheritance 3
4
LOGO Inheritance Inheritance is the second most important feature of the Object Oriented Programming. In inheritance, the code of existing classes is used for making new classes. This saves time for writing and debugging the entire code for a new class. 4
5
LOGO Cont…. To inherit means to receive. In inheritance a new class is written such that it can access or use the members of an existing class. The new class that can access the members of an existing class is called the derived class or child class. The existing class is called the base class or parent class. 5
6
LOGO Defining a Class The derived class can use the data members and member functions of the base class. It can also have its own data members and member functions. Thus a derived class can be larger than a base class. 6
7
LOGO Figure 7 Member 1 Member 2 Member 1 Member 3
8
LOGO Cont… The figure shows the relationship between a derived class and the base class. The arrow is drawn from the derived class to the base class. The direction of the arrow indicates that the derived class can access members of the base class but the base class cannot access member of its derived class. 8
9
LOGO Cont… The idea of inheritance implements the is a relationship. For example, mammal IS-A animal, dog IS-A mammal hence dog IS-A animal as well and so on. 9
10
LOGO Types of Inheritance 1.Single Inheritance: It is the inheritance hierarchy wherein one derived class inherits from one base class. 10
11
LOGO Real life example All Cars are Vehicles. All Motorcycles are Vehicles. All Sedans are Vehicles. Vehicles is the base class. Car is a derived class. Truck derives from Vehicle. Everything about being a Vehicle is inherited by Car s and Truck s and SUV s.
12
LOGO Types of Inheritance 2. Multiple Inheritance: It is the inheritance hierarchy wherein one derived class inherits from multiple base class(es) 12
13
LOGO Types of Inheritance 3. Hierarchical Inheritance: It is the inheritance hierarchy wherein multiple subclasses inherit from one base class. 13
14
LOGO Types of Inheritance 4. Multilevel Inheritance: It is the inheritance hierarchy wherein subclass acts as a base class for other classes. 14
15
LOGO Types of Inheritance 5. Hybrid Inheritance: The inheritance hierarchy that reflects any legal combination of other four types of inheritance. 15
16
LOGO Protected Access Specifier The public members of a class are accessible by all functions in the program and the private members of a class are accessible only by member functions and friend functions of that class. Similarly, the protected members of a class are accessible by the member functions and friend functions of that class. 16
17
LOGO Cont…. The protected members of a base class are, however, accessible by members of its derived classes but the private members of the base class are not accessible directly by members of its derived classes.This is the main difference between the protected and the private access specifiers. 17
18
LOGO Cont… The protected members of a base class fall between private and public member. These members are public for the derived class but for the rest of the program, these are treated as private. 18
19
LOGO Defining Derived Classes The syntax for defining a derived class is highly different from the syntax of the base class definition. The declaration of a derived class also includes the name of the base class from which it is derived. 19
20
LOGO Syntax Class sub_class_name : specifier base_class_name { -------- Members of derived class --------- }; 20
21
LOGO Example A class “student” is defined as Class student { Private: Char name[15], address[15]; Public: Void input(void) Void show(void) }; 21
22
LOGO Example The class student has two data members and to member functions. Suppose the marks obtained by a student in three subjects and the total marks of these subjects are to be included as new data members in the above class. This is done by adding new members in the class. There are two ways in which these new members can be added to the class. These are: 22
23
LOGO Example Add new member in the original class OR Define a new class that has the new members and that also uses members of the existing “student” class. Using the members of an existing class is the principle of inheritance. The new class is the derived class. The existing class serves as the base class for the derived class. 23
24
LOGO Example Driving a new class from the existing class reduces the size of the program. It also eliminates duplication of code within the program. For example, let the name of the new class be marks. This class uses the members of the existing student class. 24
25
LOGO Cont… Class marks : public student { Private: Int s1,s2,s3,total; Public: Void inputmarks(void) Void show_details(void) }; 25 Example
26
LOGO Types of Inheritance There are three kinds of inheritance Public Private Protected 26
27
LOGO Public inheritance In Publilc Inheritance, the public members of the base class become the public members of the derived class. Thus the objects of the derived class can access public members (both data and functions) of the base class. Similarly, the protected data members of the base class also become the protected members of derived class. 27
28
LOGO Public inheritance Syntax The general syntax for deriving a public class from base class is: Class sub_class_name : public base_class_name { -------------- }; 28 Example
29
LOGO Private Inheritance In private inheritance, the objects of the derived class cannot access the public members of the base class. Its objects can only access the protected data members of the base class. Class sub_class_name : private base_class_name { -------------- }; 29 Example
30
LOGO Protected Inheritance The object of the base class that is derived as protected can access only the protected member of the base class. Class sub_class_name : protected base_class_name { -------------- }; 30
31
LOGO Protected Inheritance Where Protectedspecifies the protected inheritance Sub_class_namerepresents name of the derived class Base_class_namerepresents name of the base class 31 Example
32
LOGO 32
33
LOGO Derived Class Constructor In inheritance, a constructor of the derived class as well the constructor functions of the base class are automatically executed when an object of the derived class is created. The following example explains the concept of execution of constructor functions in single inheritance. 33 Example
34
LOGO Constructor in Single Inheritance with Arguments In case of constructor functions with arguments, the syntax to define constructor of the derived class is different. To execute a constructor of the base class that has arguments through the derived class constructor is defined as: Write the name of the constructor function of the derived class with parameters Pace a colon immediately after this and then write the name of the constructor function of thee base class with parameters 34 Example
35
LOGO Multiple Inheritance In multiple inheritance, a class is derived by using more than one classes. In multiple inheritance the derived class receives the members of two or more base classes. Multiple inheritance is a powerful feature of Object Oriented Programming. This technique reduces the program size and saves programmer’s time. The programmer uses the existing base classes in the program coding to solve problems. 35
36
LOGO Multiple Inheritance The figure sown below illustrates the relation of derived class with base class. 36 Base Class A Base Class B Derived Class C
37
LOGO Syntax The syntax of multiple inheritance is similar to that single inheritance class. The names of base classes are written separated by commas (,). The general Syntax is: 37
38
LOGO Syntax Class sub_class: sp1 b_class_1, sp2 bclass_2, …….. { ----------- Members of derived class ------------ }; Where: sp1specifies the access specifier of the first base class Sp2specifies the access specifier of the second base class 38
39
LOGO Syntax Where: sp1specifies the access specifier of the first base class Sp2specifies the access specifier of the second base class 39 Example
40
LOGO Constructors in Multiple Inheritance When a class is derived from more than one base classes, the constructor of the derived class as well as of all its base classes are executed when an object of the derived class is created. If constructor function have no parameters than first the constructor functions of the base classes are executed and then the constructor functions of the derived class is executed. 40 Example
41
LOGO Constructors in Multiple Inheritance with Arguments To execute constructors of base classes that have arguments through the derived constructor functions, the derived class constructor is defined as: Write a constructor function of the derived class with parameters Place a colon (:) immediately after this and then write the constructor function names of base classes with parameters separated by commas. 41 Example
42
LOGO Cont…
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.