สมมุติว่าเรามีรถสามประเภท รถโฟร์วีลเลอร์ และรถยนต์ คลาส Vehicle เป็นคลาสพื้นฐาน คลาส FourWheeler มาจากมัน และคลาส Car นั้นมาจากคลาส FourWheeler Class Vehicle มีวิธี 'vehicle' ที่พิมพ์ 'I am a vehicle', class FourWheeler มีวิธี 'fourWheeler' ที่พิมพ์ 'I have four wheel' และ class Car มีวิธี 'car' ที่พิมพ์ 'I am a car '. ดังนั้น เนื่องจากเป็นมรดกหลายระดับ เราสามารถเข้าถึงวิธีการเรียนอื่น ๆ ทั้งหมดได้จากวัตถุของคลาสรถ เราเรียกใช้เมธอดทั้งหมดจากออบเจ็กต์ Car และพิมพ์ผลลัพธ์ที่สอดคล้องกันของเมธอด
ดังนั้น หากเราเรียกใช้เมธอดตามลำดับนี้ car(), fourWheeler() และ vehicle() ผลลัพธ์จะเป็น −
I am a car I have four wheels I am a vehicle
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- กำหนดคลาสรถใหม่
- กำหนดฟังก์ชันรถ()
- print("ฉันเป็นพาหนะ")
- กำหนดฟังก์ชันรถ()
- กำหนดคลาสใหม่ FourWheeler ที่สืบทอดมาจากคลาส Vehicle.
- กำหนดฟังก์ชัน fourWheeler()
- print("ฉันมีสี่ล้อ")
- กำหนดฟังก์ชัน fourWheeler()
- กำหนดคลาสรถใหม่ที่สืบทอดมาจากคลาส FourWheeler
- กำหนดฟังก์ชั่น car()
- print("ฉันเป็นรถ")
- กำหนดฟังก์ชั่น car()
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <iostream> using namespace std; class Vehicle{ public: void vehicle(){ cout<<"I am a vehicle\n"; } }; class FourWheeler : public Vehicle{ public: void fourWheeler(){ cout<<"I have four wheels\n"; } }; class Car : public FourWheeler{ public: void car(){ cout<<"I am a car\n"; } }; int main(){ Car obj; obj.car(); obj.fourWheeler(); obj.vehicle(); return 0; }
อินพุต
Car obj; obj.car(); obj.fourWheeler(); obj.vehicle();
ผลลัพธ์
I am a car I have four wheels I am a vehicle