SlideShare a Scribd company logo
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Object Oriented Programming
Riphah International
University, Faisalabad
Introduction to Inheritance
Uzair Saeed
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Introduction
• Probably most powerful feature of OOP
• Concept similar to inheritance in real life
• New classes are created from existing
classes
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Introduction
• New classes absorb all features of existing
classes including their data and functions.
Also enhance them by adding their own
new features in form of new data members
and new member functions
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Is-A vs Has-A relationship
• Has-A relationship is composition type of relationship (Whole-Part
relationship)
– Car has an engine
• Is-A relationship: also called association
– Car is vehicle
– Student is person
• Implementation:
– Composition: making member
– Association: using inheritance
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Introduction
• Existing classes are called base classes
• New classes are called derived classes
• Objects of derived classes are more specialized
as compared to objects of their base classes
• Inheritance provides us a mechanism of software
reusability which is one of the most important
principles of software engineering
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Inheriting Data and Functions
• All data members and member functions of
base class are inherited to derived class
• Constructors, destructors and = operator
are not inherited
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Some definitions in class
hierarchy
• Direct base class
– Inherited explicitly (one level up hierarchy)
• Indirect base class
– Inherited two or more levels up hierarchy
• Single inheritance
– Inherits from one base class
• Multiple inheritance
– Inheritance from multiple classes
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Animals: Class’s hierarchy
Mammal
People
Reptiles
Dog
Animal
man woman
John Mary
. . . . .
Classification
Inheritance
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Inheritance Examples
Base class Derived classes
Student GraduateStudent
UndergraduateStudent
Shape Circle
Triangle
Rectangle
Loan CarLoan
HomeImprovementLoan
MortgageLoan
Employee FacultyMember
StaffMember
Account CheckingAccount
SavingsAccount
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Another example: University’s community
member’s hierarchy
Single
inheritance
CommunityMember
Employee Student
Administrator Teacher
AdministratorTeacher
StaffFaculty
Alumnus
Single
inheritance
Single
inheritance
Multiple
inheritance
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Inheritance Concept
11
class Rectangle{
private:
int numVertices;
float *xCoord, *yCoord;
public:
void set(float *x, float *y, int
nV);
float area();
};
Rectangle Triangle
Polygon
class Polygon{
private:
int numVertices;
float *xCoord, *yCoord;
public:
void set(float *x, float *y, int
nV);
};
class Triangle{
private:
int numVertices;
float *xCoord, *yCoord;
public:
void set(float *x, float *y, int
nV);
float area();
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Inheritance Concept
12
Rectangle Triangle
class Polygon{
protected:
int numVertices;
float *xCoord, float *yCoord;
public:
void set(float *x, float *y, int nV);
};
class Rectangle : public
Polygon{
public:
float area();
};
class Rectangle{
protected:
int numVertices;
float *xCoord, float *yCoord;
public:
void set(float *x, float *y, int nV);
float area();
};
Polygon
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Inheritance Concept
13
Rectangle Triangle
class Polygon{
protected:
int numVertices;
float *xCoord, float *yCoord;
public:
void set(float *x, float *y, int nV);
};
class Triangle : public
Polygon{
public:
float area();
};
class Triangle{
protected:
int numVertices;
float *xCoord, float *yCoord;
public:
void set(float *x, float *y, int
nV);
float area();
Polygon
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Inheritance Concept
14
Point
Circle 3D-Point
class Point{
protected:
int x, y;
public:
void set (int a, int b);
};
class Circle : public Point{
private:
double r;
};
class 3D-Point: public
Point{
private:
int z;
};
x
y
x
y
r
x
y
z
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Define a Class Hierarchy
• Syntax:
class DerivedClassName : access-level
BaseClassName
where
– access-level specifies the type of derivation
• private by default, or
• public
• Any class can serve as a base class
– Thus a derived class can also be a base class
15
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Class Derivation
16
Point
3D-Point
class Point{
protected:
int x, y;
public:
void set (int a, int b);
};
class 3D-Point : public
Point{
private:
double z;
… …
};
class Sphere : public 3D-
Point{
private:
double r;
… …
};
Sphere
Point is the base class of 3D-Point, while 3D-Point is the base class of Sphere
Riphah International University, Faisalabad
Lecture 08 - Inheritance
What to inherit?
• In principle, every member (but not
private) of a base class is inherited by a
derived class
– just with different access permission
17
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Access Control Over the
Members
• Two levels of access control
over class members
– class definition
– inheritance type
18
b a s e c la s s / s u p e rc la s s /
p a re n t c la s s
d e riv e d c la s s / s u b c la s s /
c h ild c la s s
derivefrom
membersgoesto
class Point{
protected: int x, y;
public: void set(int a, int b);
};
class Circle : public Point{
… …
};
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Constructor Rules for Derived
Classes
The default constructor and the destructor of the base class
are always called when a new object of a derived class is
created or destroyed.
19
class A {
public:
A ( )
{cout<< “A:default”<<endl;}
A (int a)
{cout<<“A:parameter”<<endl;}
};
class B : public A
{
public:
B (int a)
{cout<<“B”<<endl;}
};
B test(1);
A:default
B
output:
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Constructor Rules for Derived Classes
You can also specify an constructor of the
base class other than the default constructor
20
class A {
public:
A ( )
{cout<< “A:default”<<endl;}
A (int a)
{cout<<“A:parameter”<<endl;}
};
class C : public A {
public:
C (int a) : A(a)
{cout<<“C”<<endl;}
};
C test(1);
A:parameter
C
output:
DerivedClassCon ( derivedClass args ) : BaseClassCon
( baseClass args )
{ DerivedClass constructor body }
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Define its Own Members
21
Point
Circle
class Point{
protected:
int x, y;
public:
void set(int a, int b);
};
class Circle : public Point{
private:
double r;
public:
void set_r(double
c);
x
y
x
y
r
class Circle{
protected:
int x, y;
private:
double r;
public:
void set(int a, int b);
void set_r(double c);
};
The derived class can also define
its own members, in addition to
the members inherited from the
base class
Riphah International University, Faisalabad
Lecture 08 - Inheritance
Even more …
• A derived class can override methods defined in its
parent class. With overriding,
– the method in the subclass has the identical signature to the
method in the base class.
– a subclass implements its own version of a base class
method.
22
class A {
protected:
int x, y;
public:
void print ()
{cout<<“From A”<<endl;}
};
class B : public A {
public:
void print ()
{cout<<“From B”<<endl;}
};
Riphah International University, Faisalabad
Lecture 08 - Inheritance
23
class Point{
protected:
int x, y;
public:
void set(int a, int b)
{x=a; y=b;}
void foo ();
void print();
};
class Circle : public Point{
private: double r;
public:
void set (int a, int b, double c) {
Point :: set(a, b); //same name
function call
r = c;
}
void print(); };
Access a Method
Circle C;
C.set(10,10,100); // from class Circle
C.foo (); // from base class Point
C.print(); // from class Circle
Point A;
A.set(30,50); // from base class Point
A.print(); // from base class Point
Riphah International University, Faisalabad
Lecture 08 - Inheritance
point and circle classes
class Point
{
protected:
int x,y;
public:
Point(int ,int);
void display(void);
};
Point::Point(int a,int b)
{
x=a;
y=b;
}
void Point::display(void)
{
cout<<"point = [" <<x<<","<<y<<"]";
}
Riphah International University, Faisalabad
Lecture 08 - Inheritance
class Circle : public Point
{
double radius;
public:
Circle(int ,int ,double );
void display(void);
};
Circle::Circle(int a,int b,double c):Point(a,b) {
radius = c;
}
void Circle::display(void) {
Point::display();
cout<<" and radius = "<<radius;
}
Riphah International University, Faisalabad
Lecture 08 - Inheritance
int main(void)
{
Circle c(3,4,2.5);
c.display();
return 0;
}
Output:
point=[3,4] and radius = 2.5

More Related Content

PPT
Learning Outcomes & Learner Achievements Management in Higher Ed
PPT
Agrega - JEM - 2008
PPT
Agrega - JEM workshop
PPTX
Inheritance
PPT
ePortfolios at the IOE
PPT
Oeb08 Dec08 Tyamada
PPTX
IPT Chapter 3 Data Mapping and Exchange - Dr. J. VijiPriya
PPT
Presentation on E-learning seminar, Copenhagen, 2007
Learning Outcomes & Learner Achievements Management in Higher Ed
Agrega - JEM - 2008
Agrega - JEM workshop
Inheritance
ePortfolios at the IOE
Oeb08 Dec08 Tyamada
IPT Chapter 3 Data Mapping and Exchange - Dr. J. VijiPriya
Presentation on E-learning seminar, Copenhagen, 2007

Similar to Lecture 08-inheritance-i (20)

PPTX
inheritance in C++ programming Language.pptx
PPT
Overview of Object Oriented Programming using C++
PPTX
Inheritance, Polymorphism, and Virtual Functions.pptx
PPT
inheritance final ppvjjfjjdrtdyyrtuytyouijkt.ppt
PPTX
INHERITANCES.pptx
PPT
Inheritance : Extending Classes
PPTX
Inheritance, Polymorphism, and Virtual Functions (Ch_15).pptx
PPTX
python programming language unit 5 ppt.pptx
PDF
Inheritance
PPT
Inheritance, Object Oriented Programming
PDF
chapter-10-inheritance.pdf
PPTX
inheritance, Packages and Interfaces.pptx
PPT
Class 7 - PHP Object Oriented Programming
PPTX
3.Syntax.pptx for oops programing language
PPT
Inheritance in C++
PPT
11 Inheritance.ppt
PPTX
Inheritance
PPTX
INHERITANCE.pptx
PPT
Object Oriented Programming Concept.Hello
PDF
inheritance in C++ programming Language.pptx
Overview of Object Oriented Programming using C++
Inheritance, Polymorphism, and Virtual Functions.pptx
inheritance final ppvjjfjjdrtdyyrtuytyouijkt.ppt
INHERITANCES.pptx
Inheritance : Extending Classes
Inheritance, Polymorphism, and Virtual Functions (Ch_15).pptx
python programming language unit 5 ppt.pptx
Inheritance
Inheritance, Object Oriented Programming
chapter-10-inheritance.pdf
inheritance, Packages and Interfaces.pptx
Class 7 - PHP Object Oriented Programming
3.Syntax.pptx for oops programing language
Inheritance in C++
11 Inheritance.ppt
Inheritance
INHERITANCE.pptx
Object Oriented Programming Concept.Hello
Ad

Recently uploaded (20)

PPTX
CPAR7 ARTS GRADE 112 LITERARY ARTS OR LI
PPTX
573393963-choose-your-own-adventure(2).pptx
PPTX
Callie Slide Show Slide Show Slide Show S
PPTX
EJ Wedding 520 It's official! We went to Xinyi District to do the documents
PPTX
65bc3704-6ed1-4724-977d-a70f145d40da.pptx
PDF
waiting, Queuing, best time an event cab be done at a time .pdf
PDF
Chapter 3 about The site of the first mass
PPTX
Physical Education and Health Q4-CO4-TARPAPEL
PDF
DPSR MUN'25 (U).pdf hhhhhhhhhhhhhbbnhhhh
PPTX
DIMAYUGA ANDEA MAE P. BSED ENG 3-2 (CHAPTER 7).pptx
PPSX
opcua_121710.ppsxthsrtuhrbxdtnhtdtndtyty
PDF
Love & Romance in Every Sparkle_ Discover the Magic of Diamond Painting.pdf
PPTX
Certificados y Diplomas para Educación de Colores Candy by Slidesgo.pptx
PDF
the saint and devil who dominated the outcasts
PPTX
Brown and Beige Vintage Scrapbook Idea Board Presentation.pptx.pptx
PPTX
Socio ch 1 characteristics characteristics
PPTX
Green and Orange Illustration Understanding Climate Change Presentation.pptx
PPTX
Slide_Egg-81850-About Us PowerPoint Template Free.pptx
PPTX
Art Appreciation-Lesson-1-1.pptx College
PPTX
Green and Blue Illustrative Earth Day Presentation.pptx
CPAR7 ARTS GRADE 112 LITERARY ARTS OR LI
573393963-choose-your-own-adventure(2).pptx
Callie Slide Show Slide Show Slide Show S
EJ Wedding 520 It's official! We went to Xinyi District to do the documents
65bc3704-6ed1-4724-977d-a70f145d40da.pptx
waiting, Queuing, best time an event cab be done at a time .pdf
Chapter 3 about The site of the first mass
Physical Education and Health Q4-CO4-TARPAPEL
DPSR MUN'25 (U).pdf hhhhhhhhhhhhhbbnhhhh
DIMAYUGA ANDEA MAE P. BSED ENG 3-2 (CHAPTER 7).pptx
opcua_121710.ppsxthsrtuhrbxdtnhtdtndtyty
Love & Romance in Every Sparkle_ Discover the Magic of Diamond Painting.pdf
Certificados y Diplomas para Educación de Colores Candy by Slidesgo.pptx
the saint and devil who dominated the outcasts
Brown and Beige Vintage Scrapbook Idea Board Presentation.pptx.pptx
Socio ch 1 characteristics characteristics
Green and Orange Illustration Understanding Climate Change Presentation.pptx
Slide_Egg-81850-About Us PowerPoint Template Free.pptx
Art Appreciation-Lesson-1-1.pptx College
Green and Blue Illustrative Earth Day Presentation.pptx
Ad

Lecture 08-inheritance-i

  • 1. Riphah International University, Faisalabad Lecture 08 - Inheritance Object Oriented Programming Riphah International University, Faisalabad Introduction to Inheritance Uzair Saeed
  • 2. Riphah International University, Faisalabad Lecture 08 - Inheritance Introduction • Probably most powerful feature of OOP • Concept similar to inheritance in real life • New classes are created from existing classes
  • 3. Riphah International University, Faisalabad Lecture 08 - Inheritance Introduction • New classes absorb all features of existing classes including their data and functions. Also enhance them by adding their own new features in form of new data members and new member functions
  • 4. Riphah International University, Faisalabad Lecture 08 - Inheritance Is-A vs Has-A relationship • Has-A relationship is composition type of relationship (Whole-Part relationship) – Car has an engine • Is-A relationship: also called association – Car is vehicle – Student is person • Implementation: – Composition: making member – Association: using inheritance
  • 5. Riphah International University, Faisalabad Lecture 08 - Inheritance Introduction • Existing classes are called base classes • New classes are called derived classes • Objects of derived classes are more specialized as compared to objects of their base classes • Inheritance provides us a mechanism of software reusability which is one of the most important principles of software engineering
  • 6. Riphah International University, Faisalabad Lecture 08 - Inheritance Inheriting Data and Functions • All data members and member functions of base class are inherited to derived class • Constructors, destructors and = operator are not inherited
  • 7. Riphah International University, Faisalabad Lecture 08 - Inheritance Some definitions in class hierarchy • Direct base class – Inherited explicitly (one level up hierarchy) • Indirect base class – Inherited two or more levels up hierarchy • Single inheritance – Inherits from one base class • Multiple inheritance – Inheritance from multiple classes
  • 8. Riphah International University, Faisalabad Lecture 08 - Inheritance Animals: Class’s hierarchy Mammal People Reptiles Dog Animal man woman John Mary . . . . . Classification Inheritance
  • 9. Riphah International University, Faisalabad Lecture 08 - Inheritance Inheritance Examples Base class Derived classes Student GraduateStudent UndergraduateStudent Shape Circle Triangle Rectangle Loan CarLoan HomeImprovementLoan MortgageLoan Employee FacultyMember StaffMember Account CheckingAccount SavingsAccount
  • 10. Riphah International University, Faisalabad Lecture 08 - Inheritance Another example: University’s community member’s hierarchy Single inheritance CommunityMember Employee Student Administrator Teacher AdministratorTeacher StaffFaculty Alumnus Single inheritance Single inheritance Multiple inheritance
  • 11. Riphah International University, Faisalabad Lecture 08 - Inheritance Inheritance Concept 11 class Rectangle{ private: int numVertices; float *xCoord, *yCoord; public: void set(float *x, float *y, int nV); float area(); }; Rectangle Triangle Polygon class Polygon{ private: int numVertices; float *xCoord, *yCoord; public: void set(float *x, float *y, int nV); }; class Triangle{ private: int numVertices; float *xCoord, *yCoord; public: void set(float *x, float *y, int nV); float area();
  • 12. Riphah International University, Faisalabad Lecture 08 - Inheritance Inheritance Concept 12 Rectangle Triangle class Polygon{ protected: int numVertices; float *xCoord, float *yCoord; public: void set(float *x, float *y, int nV); }; class Rectangle : public Polygon{ public: float area(); }; class Rectangle{ protected: int numVertices; float *xCoord, float *yCoord; public: void set(float *x, float *y, int nV); float area(); }; Polygon
  • 13. Riphah International University, Faisalabad Lecture 08 - Inheritance Inheritance Concept 13 Rectangle Triangle class Polygon{ protected: int numVertices; float *xCoord, float *yCoord; public: void set(float *x, float *y, int nV); }; class Triangle : public Polygon{ public: float area(); }; class Triangle{ protected: int numVertices; float *xCoord, float *yCoord; public: void set(float *x, float *y, int nV); float area(); Polygon
  • 14. Riphah International University, Faisalabad Lecture 08 - Inheritance Inheritance Concept 14 Point Circle 3D-Point class Point{ protected: int x, y; public: void set (int a, int b); }; class Circle : public Point{ private: double r; }; class 3D-Point: public Point{ private: int z; }; x y x y r x y z
  • 15. Riphah International University, Faisalabad Lecture 08 - Inheritance Define a Class Hierarchy • Syntax: class DerivedClassName : access-level BaseClassName where – access-level specifies the type of derivation • private by default, or • public • Any class can serve as a base class – Thus a derived class can also be a base class 15
  • 16. Riphah International University, Faisalabad Lecture 08 - Inheritance Class Derivation 16 Point 3D-Point class Point{ protected: int x, y; public: void set (int a, int b); }; class 3D-Point : public Point{ private: double z; … … }; class Sphere : public 3D- Point{ private: double r; … … }; Sphere Point is the base class of 3D-Point, while 3D-Point is the base class of Sphere
  • 17. Riphah International University, Faisalabad Lecture 08 - Inheritance What to inherit? • In principle, every member (but not private) of a base class is inherited by a derived class – just with different access permission 17
  • 18. Riphah International University, Faisalabad Lecture 08 - Inheritance Access Control Over the Members • Two levels of access control over class members – class definition – inheritance type 18 b a s e c la s s / s u p e rc la s s / p a re n t c la s s d e riv e d c la s s / s u b c la s s / c h ild c la s s derivefrom membersgoesto class Point{ protected: int x, y; public: void set(int a, int b); }; class Circle : public Point{ … … };
  • 19. Riphah International University, Faisalabad Lecture 08 - Inheritance Constructor Rules for Derived Classes The default constructor and the destructor of the base class are always called when a new object of a derived class is created or destroyed. 19 class A { public: A ( ) {cout<< “A:default”<<endl;} A (int a) {cout<<“A:parameter”<<endl;} }; class B : public A { public: B (int a) {cout<<“B”<<endl;} }; B test(1); A:default B output:
  • 20. Riphah International University, Faisalabad Lecture 08 - Inheritance Constructor Rules for Derived Classes You can also specify an constructor of the base class other than the default constructor 20 class A { public: A ( ) {cout<< “A:default”<<endl;} A (int a) {cout<<“A:parameter”<<endl;} }; class C : public A { public: C (int a) : A(a) {cout<<“C”<<endl;} }; C test(1); A:parameter C output: DerivedClassCon ( derivedClass args ) : BaseClassCon ( baseClass args ) { DerivedClass constructor body }
  • 21. Riphah International University, Faisalabad Lecture 08 - Inheritance Define its Own Members 21 Point Circle class Point{ protected: int x, y; public: void set(int a, int b); }; class Circle : public Point{ private: double r; public: void set_r(double c); x y x y r class Circle{ protected: int x, y; private: double r; public: void set(int a, int b); void set_r(double c); }; The derived class can also define its own members, in addition to the members inherited from the base class
  • 22. Riphah International University, Faisalabad Lecture 08 - Inheritance Even more … • A derived class can override methods defined in its parent class. With overriding, – the method in the subclass has the identical signature to the method in the base class. – a subclass implements its own version of a base class method. 22 class A { protected: int x, y; public: void print () {cout<<“From A”<<endl;} }; class B : public A { public: void print () {cout<<“From B”<<endl;} };
  • 23. Riphah International University, Faisalabad Lecture 08 - Inheritance 23 class Point{ protected: int x, y; public: void set(int a, int b) {x=a; y=b;} void foo (); void print(); }; class Circle : public Point{ private: double r; public: void set (int a, int b, double c) { Point :: set(a, b); //same name function call r = c; } void print(); }; Access a Method Circle C; C.set(10,10,100); // from class Circle C.foo (); // from base class Point C.print(); // from class Circle Point A; A.set(30,50); // from base class Point A.print(); // from base class Point
  • 24. Riphah International University, Faisalabad Lecture 08 - Inheritance point and circle classes class Point { protected: int x,y; public: Point(int ,int); void display(void); }; Point::Point(int a,int b) { x=a; y=b; } void Point::display(void) { cout<<"point = [" <<x<<","<<y<<"]"; }
  • 25. Riphah International University, Faisalabad Lecture 08 - Inheritance class Circle : public Point { double radius; public: Circle(int ,int ,double ); void display(void); }; Circle::Circle(int a,int b,double c):Point(a,b) { radius = c; } void Circle::display(void) { Point::display(); cout<<" and radius = "<<radius; }
  • 26. Riphah International University, Faisalabad Lecture 08 - Inheritance int main(void) { Circle c(3,4,2.5); c.display(); return 0; } Output: point=[3,4] and radius = 2.5