SlideShare une entreprise Scribd logo
1  sur  26
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

Contenu connexe

Similaire à Lecture 08-inheritance-i

inheritance in C++ programming Language.pptx
inheritance in C++ programming Language.pptxinheritance in C++ programming Language.pptx
inheritance in C++ programming Language.pptxrebin5725
 
Inheritance, Polymorphism, and Virtual Functions.pptx
Inheritance, Polymorphism, and Virtual Functions.pptxInheritance, Polymorphism, and Virtual Functions.pptx
Inheritance, Polymorphism, and Virtual Functions.pptxMrNikhilMohanShinde
 
Inheritance : Extending Classes
Inheritance : Extending ClassesInheritance : Extending Classes
Inheritance : Extending ClassesNilesh Dalvi
 
Inheritance, Object Oriented Programming
Inheritance, Object Oriented ProgrammingInheritance, Object Oriented Programming
Inheritance, Object Oriented ProgrammingArslan Waseem
 
chapter-10-inheritance.pdf
chapter-10-inheritance.pdfchapter-10-inheritance.pdf
chapter-10-inheritance.pdfstudy material
 
Class 7 - PHP Object Oriented Programming
Class 7 - PHP Object Oriented ProgrammingClass 7 - PHP Object Oriented Programming
Class 7 - PHP Object Oriented ProgrammingAhmed Swilam
 
Inheritance in C++
Inheritance in C++Inheritance in C++
Inheritance in C++RAJ KUMAR
 
DCMI Education Community Brief Update
DCMI Education Community Brief UpdateDCMI Education Community Brief Update
DCMI Education Community Brief UpdateSarah Currier
 
3java Advanced Oop
3java Advanced Oop3java Advanced Oop
3java Advanced OopAdil Jafri
 
EASY TO LEARN INHERITANCE IN C++
EASY TO LEARN INHERITANCE IN C++EASY TO LEARN INHERITANCE IN C++
EASY TO LEARN INHERITANCE IN C++Nikunj Patel
 
Inheritance in oops
Inheritance in oopsInheritance in oops
Inheritance in oopsHirra Sultan
 
Inheritance in c++
Inheritance in c++Inheritance in c++
Inheritance in c++VishnuSupa
 
#OOP_D_ITS - 6th - C++ Oop Inheritance
#OOP_D_ITS - 6th - C++ Oop Inheritance#OOP_D_ITS - 6th - C++ Oop Inheritance
#OOP_D_ITS - 6th - C++ Oop InheritanceHadziq Fabroyir
 

Similaire à Lecture 08-inheritance-i (20)

inheritance in C++ programming Language.pptx
inheritance in C++ programming Language.pptxinheritance in C++ programming Language.pptx
inheritance in C++ programming Language.pptx
 
Inheritance, Polymorphism, and Virtual Functions.pptx
Inheritance, Polymorphism, and Virtual Functions.pptxInheritance, Polymorphism, and Virtual Functions.pptx
Inheritance, Polymorphism, and Virtual Functions.pptx
 
INHERITANCES.pptx
INHERITANCES.pptxINHERITANCES.pptx
INHERITANCES.pptx
 
Inheritance : Extending Classes
Inheritance : Extending ClassesInheritance : Extending Classes
Inheritance : Extending Classes
 
Inheritance
InheritanceInheritance
Inheritance
 
Inheritance, Object Oriented Programming
Inheritance, Object Oriented ProgrammingInheritance, Object Oriented Programming
Inheritance, Object Oriented Programming
 
chapter-10-inheritance.pdf
chapter-10-inheritance.pdfchapter-10-inheritance.pdf
chapter-10-inheritance.pdf
 
Class 7 - PHP Object Oriented Programming
Class 7 - PHP Object Oriented ProgrammingClass 7 - PHP Object Oriented Programming
Class 7 - PHP Object Oriented Programming
 
Inheritance in C++
Inheritance in C++Inheritance in C++
Inheritance in C++
 
11 Inheritance.ppt
11 Inheritance.ppt11 Inheritance.ppt
11 Inheritance.ppt
 
Inheritance
InheritanceInheritance
Inheritance
 
INHERITANCE.pptx
INHERITANCE.pptxINHERITANCE.pptx
INHERITANCE.pptx
 
Inheritance
InheritanceInheritance
Inheritance
 
DCMI Education Community Brief Update
DCMI Education Community Brief UpdateDCMI Education Community Brief Update
DCMI Education Community Brief Update
 
3java Advanced Oop
3java Advanced Oop3java Advanced Oop
3java Advanced Oop
 
EASY TO LEARN INHERITANCE IN C++
EASY TO LEARN INHERITANCE IN C++EASY TO LEARN INHERITANCE IN C++
EASY TO LEARN INHERITANCE IN C++
 
Inheritance in oops
Inheritance in oopsInheritance in oops
Inheritance in oops
 
Inheritance
InheritanceInheritance
Inheritance
 
Inheritance in c++
Inheritance in c++Inheritance in c++
Inheritance in c++
 
#OOP_D_ITS - 6th - C++ Oop Inheritance
#OOP_D_ITS - 6th - C++ Oop Inheritance#OOP_D_ITS - 6th - C++ Oop Inheritance
#OOP_D_ITS - 6th - C++ Oop Inheritance
 

Dernier

Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...
Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...
Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...Sheetaleventcompany
 
codes and conventions of film magazine and website.pptx
codes and conventions of film magazine and website.pptxcodes and conventions of film magazine and website.pptx
codes and conventions of film magazine and website.pptx17duffyc
 
Storyboard short: Ferrarius Tries to Sing
Storyboard short: Ferrarius Tries to SingStoryboard short: Ferrarius Tries to Sing
Storyboard short: Ferrarius Tries to SingLyneSun
 
Jaro je tady - Spring is here (Judith) 2
Jaro je tady - Spring is here (Judith) 2Jaro je tady - Spring is here (Judith) 2
Jaro je tady - Spring is here (Judith) 2wistariecz
 
THE ARTS OF THE PHILIPPINE BALLET PRESN
THE ARTS OF  THE PHILIPPINE BALLET PRESNTHE ARTS OF  THE PHILIPPINE BALLET PRESN
THE ARTS OF THE PHILIPPINE BALLET PRESNAlvinFerdinandAceCas
 
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...delhimunirka15
 
Jaro je tady - Spring is here (Judith) 3
Jaro je tady - Spring is here (Judith) 3Jaro je tady - Spring is here (Judith) 3
Jaro je tady - Spring is here (Judith) 3wistariecz
 
一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证
一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证
一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证khuurq8kz
 
一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证
一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证
一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证20goy65g
 
Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...
Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...
Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...Nitya salvi
 
Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...
Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...
Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...Nitya salvi
 
LESSON-1-MUSIC-Q4 also a reviewer mapeh.pptx
LESSON-1-MUSIC-Q4 also a reviewer mapeh.pptxLESSON-1-MUSIC-Q4 also a reviewer mapeh.pptx
LESSON-1-MUSIC-Q4 also a reviewer mapeh.pptxmatthewmirafuentes
 
SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)
SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)
SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)River / Thao Phan
 
一比一原版(YU学位证书)约克大学毕业证学历认证新版办理
一比一原版(YU学位证书)约克大学毕业证学历认证新版办理一比一原版(YU学位证书)约克大学毕业证学历认证新版办理
一比一原版(YU学位证书)约克大学毕业证学历认证新版办理txkonu
 
Call Girls Aligarh Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Aligarh Just Call 8617370543 Top Class Call Girl Service AvailableCall Girls Aligarh Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Aligarh Just Call 8617370543 Top Class Call Girl Service AvailableNitya salvi
 
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)River / Thao Phan
 
Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...
Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...
Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...Nitya salvi
 
architect Hassan Khalil portfolio Year 2024
architect Hassan Khalil portfolio  Year 2024architect Hassan Khalil portfolio  Year 2024
architect Hassan Khalil portfolio Year 2024hassan khalil
 
Completed Event Presentation for Huma 1305
Completed Event Presentation for Huma 1305Completed Event Presentation for Huma 1305
Completed Event Presentation for Huma 1305jazlynjacobs51
 
Turn Off The Air Con - The Singapore Punk Scene
Turn Off The Air Con - The Singapore Punk SceneTurn Off The Air Con - The Singapore Punk Scene
Turn Off The Air Con - The Singapore Punk SceneLuca Vergano
 

Dernier (20)

Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...
Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...
Call Girl In Chandigarh ☎ 08868886958✅ Just Genuine Call Call Girls Chandigar...
 
codes and conventions of film magazine and website.pptx
codes and conventions of film magazine and website.pptxcodes and conventions of film magazine and website.pptx
codes and conventions of film magazine and website.pptx
 
Storyboard short: Ferrarius Tries to Sing
Storyboard short: Ferrarius Tries to SingStoryboard short: Ferrarius Tries to Sing
Storyboard short: Ferrarius Tries to Sing
 
Jaro je tady - Spring is here (Judith) 2
Jaro je tady - Spring is here (Judith) 2Jaro je tady - Spring is here (Judith) 2
Jaro je tady - Spring is here (Judith) 2
 
THE ARTS OF THE PHILIPPINE BALLET PRESN
THE ARTS OF  THE PHILIPPINE BALLET PRESNTHE ARTS OF  THE PHILIPPINE BALLET PRESN
THE ARTS OF THE PHILIPPINE BALLET PRESN
 
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
 
Jaro je tady - Spring is here (Judith) 3
Jaro je tady - Spring is here (Judith) 3Jaro je tady - Spring is here (Judith) 3
Jaro je tady - Spring is here (Judith) 3
 
一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证
一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证
一比一原版美国西雅图大学毕业证(Seattle毕业证书)毕业证成绩单留信认证
 
一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证
一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证
一比一原版Offer(文凭)意大利那不勒斯美术学院毕业证成绩单学历认证
 
Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...
Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...
Call Girls Sultanpur Just Call 📞 8617370543 Top Class Call Girl Service Avail...
 
Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...
Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...
Just Call Vip call girls Farrukhabad Escorts ☎️8617370543 Two shot with one g...
 
LESSON-1-MUSIC-Q4 also a reviewer mapeh.pptx
LESSON-1-MUSIC-Q4 also a reviewer mapeh.pptxLESSON-1-MUSIC-Q4 also a reviewer mapeh.pptx
LESSON-1-MUSIC-Q4 also a reviewer mapeh.pptx
 
SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)
SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)
SB_ Dragons Riders of Berk_ Rough_ RiverPhan (2024)
 
一比一原版(YU学位证书)约克大学毕业证学历认证新版办理
一比一原版(YU学位证书)约克大学毕业证学历认证新版办理一比一原版(YU学位证书)约克大学毕业证学历认证新版办理
一比一原版(YU学位证书)约克大学毕业证学历认证新版办理
 
Call Girls Aligarh Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Aligarh Just Call 8617370543 Top Class Call Girl Service AvailableCall Girls Aligarh Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Aligarh Just Call 8617370543 Top Class Call Girl Service Available
 
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
 
Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...
Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...
Russian Call Girls Pilibhit Just Call 👉👉 📞 8617370543 Top Class Call Girl Ser...
 
architect Hassan Khalil portfolio Year 2024
architect Hassan Khalil portfolio  Year 2024architect Hassan Khalil portfolio  Year 2024
architect Hassan Khalil portfolio Year 2024
 
Completed Event Presentation for Huma 1305
Completed Event Presentation for Huma 1305Completed Event Presentation for Huma 1305
Completed Event Presentation for Huma 1305
 
Turn Off The Air Con - The Singapore Punk Scene
Turn Off The Air Con - The Singapore Punk SceneTurn Off The Air Con - The Singapore Punk Scene
Turn Off The Air Con - The Singapore Punk Scene
 

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