繼承的概念和意義


  • 類和類之間的關聯關系
  1. 組合關系:整體與部分的關系
  2. 繼承關系(父子關系)
  • 組合關系的特點
  1. 將其它類的對象作為類的成員使用
  2. 當前類的對象與成員對象的生命期相同
  3. 成員對象在用法上與普通對象完全一致
  • 面向對象中的繼承指類之間的父子關系
  1. 子類擁有父類的所有屬性和行為
  2. 子類就是一種特殊的父類
  3. 子類對象可以當作父類對象使用
  4. 子類中可以添加父類沒有的方法和屬性
  5. C++中通過下面的方式描述繼承關系
 1 class Parent
 2 {
 3     int mv;
 4 public:
 5     void method();
 6 };
 7  
 8 class Child : public Parent//描述繼承關系
 9 {
10  
11 };
  • 重要的規則:
  1. 子類就是一個特殊的父類
  2. 子類對象可以直接初始化父類對象
  3. 子類對象可以直接賦值給父類對象
  • 繼承的意義
繼承是C++中代碼復用的重要手段,通過繼承,可以獲得父類的所有功能,並且可以在子類中重寫已有功能,或者添加新功能
  • 小結:
  1. 繼承是面向對象中類之間的一種關系
  2. 子類擁有父類的所有屬性和行為
  3. 子類對象可以作為父類對象使用
  4. 子類中可以添加父類沒有的方法和屬性
  5. 繼承是面向對象中代碼復用的重要手段
例:
 1 // 繼承.cpp : 此文件包含 "main" 函數。程序執行將在此處開始並結束。
 2 //
 3 #include <iostream>
 4 #include <string>
 5 using namespace std;
 6 class Parent
 7 {
 8         string age;
 9         string name;
10         string height;
11         string sex;
12 public:
13         Parent()
14         {
15                cout << "we are parent!!" << endl;
16         }
17         Parent(string _age,string _name,string _height,string _sex)
18         {
19                age    = _age;
20                name   = _name;
21                height = _height;
22                sex    = _sex;
23         }
24         void HELLO()
25         {
26                cout << "hello world" << endl;
27                cout << "my name is " << name << endl;
28                cout << "my age is " << age << endl;
29                cout << "my height is " << height << endl;
30                cout << "my sex is " << sex << endl;
31         }
32 };
33 class Child : public Parent
34 {
35 public:
36         Child()
37         {
38                cout << "we are child" << endl;
39         }
40 };
41 int main()
42 {
43         
44         Parent Father("48","mingxing","180cm","man");
45         Father.HELLO();
46         Child CHENGE;
47         //子類可以初始化父類
48         Parent Mother = CHENGE;
49 }
運行結果:
hello world
my name is mingxing
my age is 48
my height is 180cm
my sex is man
we are parent!!
we are child
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM