1. ปลาวาฬและวัว
นี่คือข้อเท็จจริงทางสัตววิทยาที่น่าสนใจ: วัวอยู่ใกล้วาฬมากกว่าฮิปโปโปเตมัส ปรากฎว่าวัวและปลาวาฬเป็นญาติสนิทกัน

ดูนี่. มาบอกคุณเกี่ยวกับความหลากหลาย - เครื่องมือที่ทรงพลังอีกอย่างของOOP มีคุณสมบัติสี่ประการ
2. มรดกไม่ใช่ยาครอบจักรวาล
ลองนึกภาพว่าคุณเขียนCow
คลาสสำหรับเกม มีหลายฟิลด์และวิธีการ วัตถุในชั้นนี้สามารถทำสิ่งต่างๆ ได้: เดิน กิน และนอน วัวยังสวมกระดิ่งที่ส่งเสียงเมื่อพวกมันเดิน สมมติว่าคุณได้ดำเนินการทุกอย่างในชั้นเรียนจนถึงรายละเอียดที่เล็กที่สุด
จากนั้นลูกค้าของคุณก็มาบอกว่าเธอต้องการออกเกมระดับใหม่ ซึ่งการกระทำทั้งหมดจะเกิดขึ้นในทะเล และตัวละครหลักคือปลาวาฬ
คุณเริ่มออกแบบWhale
ชั้นเรียนและตระหนักว่ามันแตกต่างจากCow
ชั้นเรียน เพียงเล็กน้อย ตรรกะของทั้งสองคลาสคล้ายกันมากและคุณตัดสินใจใช้การสืบทอด

คลาส นี้Cow
เหมาะสำหรับการรับบทบาทของคลาสพาเรนต์: มันมีตัวแปรและวิธีการที่จำเป็นทั้งหมด สิ่งที่เราต้องทำคือให้วาฬสามารถว่ายน้ำได้ แต่มีปัญหา: วาฬของคุณมีขา มีเขา และมีกระดิ่ง ท้ายที่สุดแล้ว ฟังก์ชันนี้ถูกนำมาใช้ในCow
ชั้นเรียน ทำอะไรได้บ้างที่นี่?

3. วิธีการเอาชนะ
วิธีการเอาชนะมาช่วยเรา หากเราสืบทอดเมธอดที่ไม่ได้ทำตามที่เราต้องการในคลาสใหม่ เราสามารถแทนที่เมธอดนั้นด้วยเมธอดอื่น

สิ่งนี้ทำได้อย่างไร? ในคลาสที่สืบทอดมา เราประกาศเมธอดเดียวกันกับเมธอดของคลาสพาเรนต์ที่เราต้องการแทนที่ เราเขียนโค้ดใหม่ลงไป แค่นั้น — เหมือนกับว่าเมธอดเก่าในคลาสพาเรนต์ไม่มีอยู่จริง
นี่คือวิธีการทำงาน:
รหัส | คำอธิบาย |
---|---|
|
|
|
รหัสนี้แสดงข้อความต่อไปนี้บนหน้าจอ:
|
|
รหัสนี้แสดงสิ่งต่อไปนี้บนหน้าจอ:
|
หลังจากสืบทอดCow
คลาสและแทนที่เมธอดแล้วprintName
คลาสWhale
จะมีข้อมูลและเมธอดต่อไปนี้จริง ๆ
|
เราไม่รู้เกี่ยวกับวิธีเก่าๆ |
GO TO FULL VERSION