‫ยินดีต้อนรับสู่ตัวอย่าง polymorphism
‫ในวิดีโอนี้ ฉันจะใช้แนวทางที่แตกต่างออกไป โดยอันดับแรกคุณต้องมีความท้าทายเล็กน้อย
‫คุณควรเขียนโค้ดที่จะช่วยให้คุณเข้าใจมรดกมากขึ้นหรือดีขึ้นอีกเล็กน้อย
‫จากนั้นเราจะเข้าสู่รูปแบบโพลี เป็นส่วนหนึ่งของโปรแกรมนี้ทั้งหมด
‫ดังนั้นโปรดไปข้างหน้าและลองเขียนโค้ดตามความท้าทายนี้ที่นี่
‫หยุดวิดีโอชั่วคราวแล้วลอง
‫ไม่เป็นไร.
‫ฉันหวังว่าคุณจะลอง
‫ฉันจะสร้างคลาส ed ใหม่ และฉันจะเรียกมันว่ารถยนต์
‫และคลาสนี้จะเป็นคลาสรถยนต์ทั่วไป
‫และมันสามารถมีหรือควรจะมีคุณสมบัติ
‫ถูกต้อง.
‫อย่างที่ฉันพูดไป มันควรจะมีคุณสมบัติที่เรียกว่า HP Prop และควรเป็นจำนวนเต็ม และ HP จะเป็นแรงม้า
‫รถคันนี้แรงแค่ไหน?
‫แล้วคุณสมบัติอื่นที่เป็นชนิด string และสีใด?
‫ตอนนี้สิ่งที่ฉันต้องการต่อไปคือการมีตัวสร้าง
‫ดังนั้นฉันจะสร้างรถสาธารณะที่เน้น HP และสี
‫และที่นี่ ฉันเพิ่งตั้งค่าจุด HP เป็น HP และสีจุดนี้เป็นสี
‫ดังนั้นสีนี้จะเป็นสีคุณสมบัติของเรา และ HP จะเป็น HP ของคลาสของเราหรือของวัตถุของเราที่สร้างขึ้นจากรถยนต์ประเภท
‫ต่อไปควรเป็นวิธีการแสดงรายละเอียด
‫โมฆะสาธารณะจึงแสดงรายละเอียด
‫และในนี้เราแค่เขียนบางอย่างลงบนคอนโซล
‫CW, HP จะเป็นบวก HP
‫แล้วเราก็ได้สีซึ่งควรจะเป็นสีอะไรประมาณนั้น
‫แน่นอน ฉันสามารถใช้วิธีการอื่น โดยที่ฉันใช้การจัดการสตริงที่นี่ แต่ฉันจะเก็บมันไว้แบบนี้
‫ง่ายมาก.
‫ต่อไปเป็นโมฆะสาธารณะและเรียกว่าการซ่อมแซม
‫และเราจะเปลี่ยนสองวิธีนี้ในภายหลัง
‫ดังนั้นไม่ต้องกังวล
‫แต่สำหรับตอนนี้ ฉันต้องการให้มันง่ายมาก
‫ด้วยวิธีต่างๆ ที่เราเคยใช้มาจนถึงตอนนี้ จะทำให้ชัดเจนยิ่งขึ้นว่ารูปแบบต่างๆ ทำอะไร และที่นี่แค่บอกว่ารถได้รับการซ่อมแซมแล้ว
‫เอาล่ะ นั่นคือรถของเรา และนั่นคือระดับพื้นฐานของเรา
‫และตอนนี้เราต้องการอีกสองคลาส ซึ่งก็คือบีเอ็มดับเบิลยู คลาสบีเอ็มดับเบิลยูของเรา
‫และในที่นี้ อย่างที่ฉันบอก เรามีคุณสมบัติเพิ่มเติมที่เรียกว่า model และนี่คือโมเดลสตริง
‫อีกแง่มุมหนึ่งคือแบรนด์ซึ่งเป็นสมาชิกส่วนตัว
‫แบรนด์เครื่องสายส่วนตัวและเรียกว่าบีเอ็มดับเบิลยู
‫ต่อไป เราต้องการตัวสร้าง ดังนั้น BMW สาธารณะ
‫และก่อนที่ฉันจะทำอย่างนั้น ก่อนที่ฉันจะสร้างคอนสตรัคเตอร์ ฉันต้องการสืบทอดจากรถยนต์
‫ตอนนี้ BMW ของฉันกำลังจะสืบทอดจากรถยนต์
‫และสิ่งที่ฉันต้องการที่นี่คือ HPP จากนั้นสีและรุ่น
‫และที่นี่และลูกน้ำ
‫สิ่งที่ฉันทำได้คือตั้งค่า HPP เป็น HPP ได้ จริงๆ แล้วฉันสามารถดำเนินการต่อและทำแบบเดียวกันกับสีได้
‫มันจะเป็นสีและรุ่นซึ่งเป็นทรัพย์สินของเราควรจะเป็นแบบจำลอง
‫อันนี้ตรงนี้ ตรงนั้น ฉันใช้อันนี้เพราะว่าฉันต้องการมันสำหรับออบเจกต์นี้ และสิ่งเดียวกันกับที่ฉันสามารถทำได้ที่นี่
‫และฉันสามารถทำได้ที่นี่
‫ถึงแม้ว่าฉันจะไม่ได้สร้างมันขึ้นมาในนี้ อย่างที่คุณเห็น ฉันยังคงใช้มันได้
‫นี่คือสิ่งที่คุณยังไม่เคยเห็น ซึ่งเป็นฐาน
‫ดังนั้นฉันจึงสามารถใช้คีย์เวิร์ดพื้นฐานที่นี่ จากนั้นฉันก็พูดได้ว่า โอเค ฉันต้องการใช้ HPP และสีของคลาสพื้นฐานของฉัน
‫จากนั้นฉันก็ไม่ต้องการสองบรรทัดนั้นอีกต่อไป ดังนั้นฉันจึงสามารถกำจัดสิ่งเหล่านั้นได้
‫อย่างที่คุณเห็นตอนนี้ ข้อผิดพลาดก็หายไปเช่นกัน
‫ดังนั้นตอนนี้ เราได้สร้างคอนสตรัคเตอร์ซึ่งใช้คอนสตรัคเตอร์พื้นฐานของฐานของเรา ซึ่งหมายถึงคลาสฐานของเรา
‫ซึ่งเป็นรถของเรา
‫มันจะใช้คอนสตรัคเตอร์นี้และจะเพิ่มโมเดลเข้าไป
‫ตอนนี้เรามีตัวสร้างที่สั้นมากซึ่งทำงานทุกอย่าง ทุกงานทั้งหมด
‫ตอนนี้สิ่งที่ฉันต้องการต่อไปคือรายละเอียดการแสดงที่เป็นโมฆะอย่างที่ฉันพูด
‫และในนี้ ฉันต้องการแสดงรายละเอียด และฉันจะคัดลอกเมธอดจากที่นี่ หรือรายการของเมธอด
‫และในนี้จะเป็นแบรนด์แรกๆ
‫ดังนั้น แบรนด์ พลัส แบรนด์ พลัส เอชพี
‫ตอนนี้มันก็แค่จะแสดงรายละเอียดเพิ่มเติมบางอย่าง
‫และอย่างที่คุณเห็น แสดงรายละเอียด ซ่อน สืบทอดรายละเอียดรถของสมาชิก ใช้คีย์เวิร์ดใหม่หากต้องการซ่อน
‫และนั่นคือสิ่งที่เราจะพูดถึงในวิดีโอหน้า
‫แต่ตอนนี้ ขอยังสร้างวิธีการซ่อมแซม ซ่อมแซมโมฆะสาธารณะ
‫และในนี้ควรจะพูดอะไรบางอย่างเช่น BMW และที่นี่ได้รับการซ่อมแซม
‫แล้วศูนย์ที่ฉันมีตรงนี้คืออะไร?
‫ก็รุ่นนั้นแหละ
‫ดังนั้นฉันแค่อยากจะทราบรุ่นของรถและจะบอกว่า BMW, Z, Phi, az4 หรือ MX three หรือ
‫MX five ได้รับการซ่อมแซมแล้ว
‫นั่นคือสิ่งที่ควรทำ
‫และตอนนี้ฉันต้องการอีกคลาสหนึ่ง อีกคลาสหนึ่ง ซึ่งค่อนข้างคล้ายกับที่เรามีที่นี่
‫ดังนั้นฉันจะสร้างคลาสใหม่และฉันจะเรียกมันว่าออดี้
‫และเพื่อความง่าย ผมจะคัดลอกส่วนใหญ่ของที่นี่ ที่จริงแล้ว ทั้งชั้นเรียน เพราะมันจะคล้ายกันมาก
‫สิ่งที่แตกต่างคือที่นี่คือ Audi และที่เรามี Audi เป็นตัวสร้าง และแน่นอนว่ามันจำเป็นต้องสืบทอดจากรถยนต์
‫เสร็จแล้วก็มาถึงส่วน polymorphism
‫ดังนั้นเราจึงมี Audi ซึ่งเป็นรถยนต์ประเภท เรามี BMW ซึ่งเป็นรถยนต์ประเภทด้วย
‫และเรามีคลาสพื้นฐานซึ่งก็คือรถยนต์ และตอนนี้ เราสามารถดำเนินการต่อไป และสร้างวัตถุหลายชิ้นของสิ่งนั้นได้
‫ตอนนี้มันจะสมเหตุสมผลมากขึ้นทันทีที่เราไปถึงที่นั่น
‫ไปข้างหน้าและสร้างตัวแปรใหม่ที่เรียกว่ารถยนต์ ซึ่งจะเป็นรายการรถยนต์ใหม่
‫และถึงแม้ว่านี่คือรายชื่อรถยนต์ ดังนั้นสำหรับประเภทรถยนต์ เราสามารถสร้างสิ่งเหล่านี้ได้ และ BMW ก็อยู่ที่นี่
‫สามารถสร้างได้ สมมติว่า Audi ซึ่งเป็นสีน้ำเงินและเป็น A Four
‫แล้วเราก็มี BMW ใหม่ ซึ่งก็คือ 250 แรงม้า สมมุติว่าเป็นรถสีแดงและเป็น MX สาม
‫นั่นคือส่วนหนึ่งของความหลากหลายที่คุณสามารถใช้คลาสย่อยแทนคลาสพื้นฐานหรือคลาสที่ได้รับแทนคลาสพื้นฐานเมื่อทำงาน
‫ตัวอย่างเช่น กับรายการหรือโดยทั่วไป และโดยทั่วไป คุณจะเห็นว่าฉันหมายถึงอะไร
‫ดังนั้นสิ่งที่ผมจะทำคือ ผมจะรัน a สำหรับแต่ละลูป ซึ่งจะตรวจสอบรถทั้งหมดของผมในรายการรถของผม
‫และมันจะเขียนอะไรบางอย่าง เช่น การซ่อมรถ หรือจะเรียกวิธีการซ่อม
‫เอาล่ะ เรียกอย่างนั้นหรือเรียกใช้กัน
‫แต่ก่อนที่เราจะทำเช่นนั้น เราต้องปลอบใจคีย์ที่ถูกต้องก่อน
‫เพราะไม่เช่นนั้นโปรแกรมของเราจะปิดลง
‫คุณอยู่ที่นั่น
‫รถได้รับการซ่อมแซม
‫ตอนนี้กำลังเรียกวิธีการของรถที่นี่
‫อันไหนของที่นี่?
‫รถได้รับการซ่อมแซม
‫จึงไม่เรียกวิธีการซ่อมแซมนี้ และไม่เรียกวิธีการซ่อมแซมนี้ ซึ่ง BMW ได้รับการซ่อมแซม
‫หรือที่จริงแล้วที่นี่ควรเป็นเสียงหรือ Audi
‫ออดี้ได้รับการซ่อมแซม
‫เหตุใดจึงเรียกวิธีการซ่อมรถของเราว่าไม่ใช่ของ BMW และ Audi ที่เกี่ยวข้องกับสองสิ่ง
‫หนึ่งในนั้นคือเรามีการซ่อมแซมเป็นโมฆะ ซึ่งไม่ใช่การซ่อมแซมเสมือนจริง
‫ดังนั้น หากเราสร้างการซ่อมแซมเป็นโมฆะเสมือน สิ่งที่เราสามารถทำได้ในตอนนี้คือ ที่นี่ เราสามารถแทนที่มันได้
‫ตอนนี้เราสามารถแทนที่วิธีการซ่อมแซมได้
‫สิ่งที่จะทำคือถ้าเราเรียกใช้รหัสอีกครั้ง
‫เราจะเห็น
‫รถได้รับการซ่อมแซม
‫นั่นคือ Audi ของเราคนแรก
‫จากนั้น BMW M สามก็ได้รับการซ่อมแซมและนั่นคืออันที่สอง
‫และนั่นเป็นเพราะคลาส BMW ของเราที่นี่ได้แทนที่วิธีการซ่อม
‫ดังนั้นเราสามารถใช้วิธีนี้ ทำให้มันเสมือน และนั่นทำให้เราสามารถแทนที่มันในคลาสที่ได้รับมา
‫และนั่นคือสิ่งที่เราทำที่นี่
‫ดังนั้นตอนนี้มีสองด้านของความหลากหลาย
‫ดังนั้น polymorphism network one และ ODI และ VW, Porsche ไม่ว่าคุณจะต้องการรถประเภทไหน
‫ก็สามารถใช้ได้ทุกที่ที่มีรถ
‫ดังนั้นเมื่อใดก็ตามที่พวกมันสืบทอดจากคลาสนี้ที่นี่ จากคลาสรถของเราที่นี่ คลาสนี้ เราก็สามารถใช้มันแทนได้
‫แล้วลักษณะที่สองของความหลากหลายก็คือสามารถเรียกใช้เมธอดเสมือนในแต่ละคลาสที่ได้รับ
‫ไม่ใช่บนคลาสพื้นฐาน
‫นั่นคือสิ่งที่เราได้ทำกับ BMW และตอนนี้เราสามารถทำสิ่งเดียวกันกับคำสั่งของเราที่นี่
‫ผมก็เลยจะทำให้มันเป็นการลบล้างเช่นกัน
‫ลบล้าง เป็นโมฆะ ซ่อมแซม
‫ตอนนี้ขอเรียกใช้อีกครั้ง
‫และตอนนี้ทั้งคู่ควรแสดงแบรนด์และรุ่นของตน
‫ดังนั้นเราจึงเห็นว่า Audi A4 และ BMW M3 ได้รับการซ่อมแซม
‫มีอีกสิ่งหนึ่งที่เกี่ยวกับความแตกต่าง
‫ดังนั้นหากคุณต้องการซ่อนสมาชิกคลาสฐานที่มีสมาชิกใหม่ คุณสามารถใช้คำสำคัญใหม่ได้
‫สมมติว่าเรามีวิธีการแสดงรายละเอียดโมฆะนี้ในรถคลาสของเรา ซึ่งเป็นโมฆะ
‫มันไม่ใช่โมฆะเสมือน
‫และตอนนี้ ถ้าฉันต้องการแทนที่สิ่งนั้น ดังนั้น อย่าแทนที่ในความหมายที่เราทำที่นี่ด้วยตัวแทนที่
‫แต่จริงๆ แล้วฉันต้องการใช้วิธีนี้แทนเมื่อใดก็ตามที่ฉันใช้ BMW และไม่ใช่ในแง่ของการเอาชนะวิธีเก่า
‫แต่เพียงแค่ซ่อนวิธีจากรถและใช้การแสดงรายละเอียดแทน
‫ฉันสามารถใช้คำหลักใหม่
‫สิ่งที่จะทำก็คือจะบอกว่า โอเค รายละเอียดการแสดงนี้มีความสำคัญมากกว่ารายละเอียดการแสดงรถ
‫ดังนั้นจึงไม่ได้เอาชนะมัน แต่มันกำลังจัดลำดับความสำคัญใหม่
‫แล้วตอนนี้จะถ่ายยังไง?
‫แสดงวิธีการแสดงรายละเอียดนี้หรือใช้วิธีการแสดงนี้?
‫มาสร้าง BMW pmwz3 ใหม่ ซึ่งจะเป็นรถ BMW ใหม่ที่มีกำลัง 200 แรงม้ากัน
‫มาทำสีดำกันเถอะ
‫แล้วก็เป็นรุ่น az3
‫จากนั้นมาสร้าง Audi Audi a three กัน
‫มันจะเป็น Audi ใหม่ สมมติว่า 100 แรงม้า
‫และอันนี้เป็นสีเขียว
‫สีรถแปลกมาก
‫แล้วคุณมีสามโมเดลตรงนี้
‫มาเริ่มใช้งาน BMW และแสดงรายละเอียดวิธีการกันที่นี่
‫และเช่นเดียวกันสำหรับออดี้
‫ออดี้.
‫สามเพื่อแสดงรายละเอียด
‫ลองทำกันดู
‫และคุณจะเห็น HP 200 สีดำ HP 100 สีเขียว
‫อย่างที่คุณเห็นมันเรียกวิธีการแสดงรายละเอียดรถและไม่ได้เรียกวิธีจาก BMW
‫และนั่นเป็นเพราะว่าเราได้สร้างมันขึ้นมาในฐานะรถยนต์ แต่มันเป็น BMW ใหม่ในฐานะรถยนต์
‫ดังนั้นถ้าเราทำแบบเดียวกันตอนนี้ มาสร้าง BMW MX five กันต่อครับ
‫ซึ่งจะไม่ใช่รถยนต์ แต่คราวนี้เป็น B, M W ใหม่ และคันนี้ สมมุติว่า มี 330 แรงม้า
‫สีขาวและเป็น MX Five
‫ทีนี้ถ้าผมเรียกวิธีนี้ว่า B M W MX five dot แสดงรายละเอียดวิธี มันจะแสดงยี่ห้อให้ผมดูด้วย
‫ก็เลยเป็นยี่ห้อ BMW HP 330 สีขาว
‫และคนแรก
‫ดังนั้นคนเหล่านั้นที่นี่
‫พวกเขายังต้องแสดงวิธีการอย่างละเอียด แต่พวกเขาใช้หนึ่งในรถยนต์และตอนนี้ BMW
‫ใช้หนึ่งใน BMW
‫แม้ว่าเราจะบอกว่า BMW ใหม่ แต่เรายังคงใช้คลาสรถเพื่อสร้างวัตถุของรถที่เป็นของ BMW
‫ภายใน แต่เราเรียกวิธีการของรถยนต์และไม่ใช่วิธีของ BMW เฉพาะในกรณีที่เราดำเนินการและสร้างเป็น
‫BMW ที่เราเรียกว่าวิธีการใหม่
‫ของใหม่ตรงนี้ มันบอกว่า โอเค ถ้าคุณสร้างวัตถุของฉัน ให้เขียนมันใหม่
‫ถ้าคุณไม่ทำ ให้ทำตามขั้นตอนง่ายๆ ของรถยนต์หรือคลาสรถกับคลาสพื้นฐาน
‫แต่ถ้าฉันต้องการเรียกวิธีการแสดงรายละเอียดของคลาสพื้นฐานของฉันบนวัตถุ BMW ของฉันล่ะ
‫จากนั้นฉันก็สามารถทำสิ่งต่อไปนี้ได้
‫ฉันสามารถไปข้างหน้าและสร้างรถที่ฉันจะเรียกว่ารถ B มันจะเป็น BMW m Five
‫แต่มันจะเป็น
‫รถ.
‫ที่นี่ฉันใช้การหล่อเพื่อหล่อ BMW ของฉันเข้าไปในรถ และตอนนี้ฉันสามารถไปข้างหน้าและใช้รถ
‫b dot แสดงรายละเอียดของ BMW MX five ของฉันได้
‫หรือของรถผมก็เป็นอีกรุ่นครับ hpp 330 สีขาว
‫นั่นคือ BMW m five ของเราที่นี่
‫เหตุใดคุณจึงใช้วิธีซ่อนและใช้คำหลักใหม่นี้กับสมาชิกของคุณที่นี่
‫คุณจะใช้มันถ้าคุณต้องการให้สมาชิกที่ได้รับของคุณมีชื่อเหมือนกับสมาชิกในคลาสพื้นฐาน
‫แต่คุณไม่ต้องการให้มันเข้าร่วมในการวิงวอนเสมือน
‫นั่นคือเมื่อคุณใช้คำหลักใหม่นี้ที่เราได้เห็นในที่นี้
‫มิฉะนั้น หากคุณต้องการลบล้าง คุณสามารถใช้วิธีการแทนที่นี้ที่นี่ หรือคำสำคัญแทนที่นี้ในการประกาศวิธีการของคุณ
‫ไม่เป็นไร.
‫นั่นเป็นบางสิ่งหรือความหลากหลาย
‫ในวิดีโอหน้า เราจะมาดูกันว่าเราจะป้องกันได้อย่างไร
‫ดังนั้นหากคุณไม่ต้องการให้วิธีการนั้นสามารถถูกแทนที่ได้
‫มีวิธีทำในคลาสพื้นฐานของเรา
‫แล้วพบกันใหม่ในวิดีโอหน้า