‫ในวิดีโอที่แล้ว คุณได้เรียนรู้เกี่ยวกับมรดกและพื้นฐานของการสืบทอด
‫แต่ตอนนี้ มาเจาะลึกลงไปอีกหน่อย และดูคำสำคัญหลายคำที่เกี่ยวข้องกับมรดก
‫และสิ่งที่เรากำลังจะดูจะเป็นเสมือนและคำหลักแทนที่
‫ตอนนี้คุณอาจสงสัยว่าทำไมเราถึงมีสัตว์อยู่ที่นี่บนหน้าจอ?
‫ทำไมเดนนิสจึงแสดงภาพสัตว์จำนวนมาก?
‫ประเด็นคือ เราจะใช้คลาสสัตว์ ซึ่งจะทำให้เราสามารถสืบทอด และสัตว์จะเป็นคลาสพ่อแม่
‫ซึ่งมีทักษะสองสามอย่าง เช่น แล้วสัตว์ทำอะไรได้บ้าง?
‫ทำเสียงได้ กินได้ เล่นได้
‫อย่างน้อยนั่นคือสิ่งที่เราจะอนุญาตให้ชั้นเรียนสัตว์ทำ
‫และแน่นอนว่าสัตว์สามารถทำอะไรได้อีกมากมาย
‫เราจะให้คุณสมบัติสองสามอย่างแก่มัน เช่น ชื่อ The Age Property แล้วถ้ามันหิว ตัวอย่างเช่น ถ้ามันหิวเท่านั้นมันก็จะกิน
‫ไม่งั้นมันจะไม่กิน
‫นั่นคือแนวคิดในการสร้างคลาสสัตว์จริงๆ
‫และตอนนี้คุณสามารถดำเนินการชั้นเรียนนี้ด้วยตัวเองได้แล้ว
‫จากนั้นเราจะใช้การสืบทอด ไม่เพียงแต่ใช้วิธีการและคุณสมบัติเดียวกันเท่านั้น
‫แต่ยังแทนที่ด้วยโดยพื้นฐานว่า โอเค เสียงที่สัตว์ที่เป็นสุนัขสร้างขึ้นจะแตกต่างกับเสียงที่ ตัวอย่างเช่น
‫ลิงสร้างหรือลิงสร้างหรือยีราฟสร้างหรืออะไรทำนองนั้น
‫นี่คือสิ่งที่เราจะนำไปใช้โดยพื้นฐาน
‫และด้วยการทำเช่นนั้น เราจะเรียนรู้คำสำคัญต่างๆ เช่น เสมือนและคำสำคัญแทนที่
‫ไปข้างหน้าและสร้างโครงการใหม่สำหรับสิ่งนี้
‫ฉันจะใช้แอปพลิเคชันคอนโซล
‫ฉันจะเรียกมันว่าการสาธิตการแทนที่เสมือน
‫ไม่เป็นไร.
‫ความท้าทายเล็กๆ น้อยๆ สำหรับคุณ หากอยากลองทำด้วยตัวเอง โปรดเขียนคลาสเล็กๆ
‫ที่เรียกว่า สัตว์ และมันจะมีคุณสมบัติ
‫ชื่ออายุกำลังหิว
‫แน่นอน คอนสตรัคเตอร์ แล้ววิธีการที่เรียกว่าทำเสียง กิน เล่น ในเชิงบวก และนำสิ่งเหล่านี้ไปใช้หากคุณต้องการ เพราะนี่จะทำให้คุณได้ฝึกฝนเพียงเล็กน้อยเพื่อสร้างความแตกต่างเหล่านี้ทั้งหมด
‫วิธีการ
‫แล้วเราจะมาดูวิธีการเปลี่ยนมันเล็กน้อยเพื่อให้เราสามารถนำไปใช้ในมรดกได้อย่างเหมาะสม
‫เอาล่ะ ฉันหวังว่าคุณจะได้ลอง
‫ดังนั้น แน่นอน เราสามารถใช้ control k c เพื่อสร้างคลาสใหม่ได้ และฉันจะเรียกสัตว์ตัวนี้ว่าแบบนั้น
‫และตอนนี้สัตว์ประเภทนี้จะมีคุณสมบัติสองสามอย่างอย่างที่ฉันพูด
‫ดังนั้นคุณสมบัติชื่อ คุณสมบัติ H เช่นเดียวกับคุณสมบัติหิว และตัวสร้างอย่างง่ายที่ใช้คุณสมบัติเหล่านี้ทั้งหมด
‫คุณจะเห็นว่าเราแค่ใช้ get set
‫อย่างไรก็ตาม หากคุณต้องการสร้างคุณสมบัติอย่างรวดเร็วจริงๆ เพียงป้อนคุณสมบัติ แตะสองครั้ง แล้วป้อนประเภท
‫เช่น สตริง และจากนั้นที่นี่ ตัวอย่างเช่น ชื่อ
‫นั่นเป็นวิธีที่คุณจะทำได้อย่างรวดเร็วโดยไม่ต้องพิมพ์เกินความจำเป็น
‫ไม่เป็นไร.
‫นี่จะเป็นตัวสร้างของเราที่นี่ โดยมีชื่อ H และ the is Hunger
‫และคุณจะเห็นได้ว่าความหิวไม่ใช่สิ่งที่เรากำลังจะตั้งค่าให้กับสัตว์เมื่อเราสร้างมันขึ้นมา
‫แต่เราจะตั้งค่าให้เป็นจริงในตอนเริ่มต้นโดยค่าเริ่มต้น
‫ดังนั้นฉันจึงตั้งค่าเป็นค่าเริ่มต้นที่หิวโหย
‫ตกลง.
‫ตอนนี้ฉันบอกว่าฉันต้องการมีวิธีที่เรียกว่าทำเสียง
‫ลองดูวิธีนี้กัน
‫ดังนั้นฉันจึงใช้วิธีเสมือนเปล่า สร้างเสียงสำหรับคลาสอื่นที่จะแทนที่
‫ฉันกำลังทำให้วิธีนี้เสมือนเพื่อให้สามารถแทนที่โดยคลาสที่สืบทอดมาจากสัตว์
‫และเราจะมาดูวิธีการทำกันในภายหลัง เพราะเสียงที่สัตว์สร้างขึ้นนั้นขึ้นอยู่กับตัวสัตว์เองเป็นอย่างมาก
‫ดังนั้นการหิวโหยเป็นสิ่งที่สัตว์ทุกตัวแบ่งปันกัน เพราะนั่นคือวิธีการทำงานของพวกเรา
‫เราต้องการพลังงานและเราได้รับสิ่งนั้นผ่านทางอาหาร
‫และเพื่อจูงใจตัวเองให้ไปหาอาหารหรือกินอาหาร เรามีความหิว
‫แต่วิธีการเสมือนที่เรามีที่นี่ ทำให้มีเสียง ไม่จำเป็นต้องว่างเปล่า
‫มาดูวิธีการกินนี้กัน
‫และวิธีการกินนี้จะเป็นวิธีเสมือนจริงด้วย
‫ซึ่งช่วยให้คลาสย่อยของเราสามารถแทนที่เมธอดนี้ได้
‫ดังนั้นถ้าเราต้องการแทนที่วิธีการกิน เราก็ทำได้ แต่ไม่จำเป็น
‫ฟังก์ชันทั่วไปจะเป็นแบบที่คุณเห็นที่นี่
‫ดังนั้นจะตรวจสอบว่าสัตว์หิวหรือไม่
‫ถ้าใช่ก็จะพิมพ์ชื่อออกมาบอกว่ากำลังกินอยู่
‫แล้วถ้าไม่หิวจะขึ้นว่าไม่หิว
‫ดังนั้นชื่อจึงเป็นสมบัติของสัตว์ของเรา
‫ชื่อนี้จึงเป็นสมบัติของสัตว์
‫โอเค นั่นจะเป็นวิธีการของเรา และเราจะทำให้มันเสมือนจริงด้วย
‫แล้ววิธีเสมือนอื่นที่จะเล่น
‫ดังนั้นวิธีการเล่นเสมือนนี้โดยพื้นฐานแล้วจะบอกว่าชื่อกำลังเล่นบนคอนโซล
‫ตอนนี้เรากำลังใช้คำสั่งเส้นสีแดงง่ายๆ
‫แน่นอนว่านี่อาจเป็นโค้ดที่ซับซ้อนกว่ามาก
‫ดังนั้น นี่จึงเป็นเพียงเพื่อทำให้สิ่งทั้งปวงง่ายขึ้นและทำให้เข้าใจอย่างมนุษย์มากขึ้น พูดได้ว่า
‫เพราะการเล่น การกิน และสิ่งของ นี่คือสิ่งที่เราสามารถเข้าใจได้โดยตรงเพราะเราได้เห็นมันในชีวิตของเราและเราได้ทำมันเองในขณะที่
‫เช่นการอ่านข้อมูลจากฐานข้อมูลหรืออะไรทำนองนั้น
‫นั่นไม่ใช่สิ่งที่เรามักจะเห็นในชีวิตจริง
‫ตกลง.
‫ไม่เป็นไร.
‫ทีนี้มานิยามคลาสของเราที่จะได้มาจากสัตว์กัน
‫จึงจะสืบทอดมาจากชั้นสัตว์
‫ไปข้างหน้าและใช้การควบคุม K และ C หรือคำสั่ง K และดู
‫จากนั้นจะเปิดหน้าจอที่เราสามารถสร้างชั้นเรียนหรือสร้างชั้นเรียนก็ได้
‫มิฉะนั้นฉันจะสร้างคลาสสุนัขและคลาสสุนัขนี้จะได้รับมรดกจากสัตว์เช่นนั้น
‫ตอนนี้คุณสามารถเห็นแล้วว่าไม่มีอาร์กิวเมนต์ที่กำหนดที่สอดคล้องกับชื่อพารามิเตอร์ที่เป็นทางการที่จำเป็นของสตริงชื่อสัตว์
‫int
‫ดังนั้นเราต้องสร้างคอนสตรัคเตอร์ที่นี่
‫ไปข้างหน้าและสร้างคอนสตรัคเตอร์อย่างง่ายซึ่งจะเป็นไปตามโครงสร้างเดียวกัน
‫มันจะมีชื่อและอายุ และจะใช้ชื่อฐาน H ได้ดี เพื่อให้เราสามารถใช้ตัวสร้างเดียวกันกับที่เรากำหนดสัตว์นั้น
‫ตอนนี้ฉันกำลังจะใช้คุณสมบัติใหม่ที่เรียกว่า Happy หรือ Happy และนี่จะเป็นบูลีน
‫โดยพื้นฐานแล้วจะเก็บไว้หากสัตว์ในกรณีนี้สุนัขมีความสุข
‫ดังนั้นมันจะเป็นจริงถ้าสุนัขมีความสุขและสุนัขเป็นสัตว์ที่มีความสุข
‫ดังนั้นโดยค่าเริ่มต้น สุนัขจะมีความสุข
‫เอาล่ะ ตอนนี้เรามาแทนที่วิธีการกัน
‫เรามาแทนที่วิธีการเสมือนกันเถอะ กิน
‫ดังนั้นเราจึงใช้คีย์เวิร์ดแทนที่นี้
‫สาธารณะเหมือนกับวิธีปกติ แต่เรากำลังเพิ่มคีย์เวิร์ดแทนที่นี้
‫ดังนั้น แทนที่ ถือเป็นโมฆะ
‫เหมือนกันกับคุณ
‫หรือคล้ายกับที่เรามีที่นี่ที่เรามีวิธีนี้ด้วย แต่ที่นี่เราใช้คำหลักเสมือน
‫ดังนั้นคีย์เวิร์ดเสมือนนี้จึงอนุญาตให้คลาสย่อยของเรา ซึ่งเป็นคลาสที่สืบทอด ดังนั้นเด็ก ๆ สามารถใช้คีย์เวิร์ดแทนที่เพื่อแทนที่ฟังก์ชันการทำงานของคีย์เวิร์ดโดยพื้นฐาน
‫ถ้ายังต้องการเรียกใช้ฟังก์ชันพื้นฐานของคลาส parent ของคลาส animal อยู่
‫ในกรณีนี้เราจำเป็นต้องใช้ base แบบ dot it base ก็จะบอกว่า โอเค เรียก method ของ base แล้ว base ก็จะดีเองค่ะ
‫สัตว์.
‫ดังนั้นเมื่อคุณดับเบิลคลิกที่ฐานและมันถูกเน้น คุณจะเห็นว่าสัตว์นั้นถูกเน้นด้วยเพราะสัตว์เป็นคลาสพื้นฐานของคุณ
‫หากคุณกดปุ่มควบคุมค้างไว้และคุณคลิกที่ฐาน มันจะข้ามไปยังคลาสสัตว์เพราะนั่นคือคลาสพื้นฐาน
‫และคุณจะเห็นว่ามีการอ้างอิงถึงคลาสฐานของเรา 3 แบบ และนั่นคือฐานนี้ เช่นเดียวกับฐานนี้
‫และสัตว์ตัวนี้ที่ด้านบนสุด
‫ตกลง.
‫ณ จุดนี้ โดยพื้นฐานแล้ว เราใช้คลาสพื้นฐานของเราที่นี่ ฟังก์ชันคลาสพื้นฐาน เราไม่ได้เอาชนะสิ่งใด
‫โดยพื้นฐานแล้ว เรากำลังบอกว่าสุนัขเป็นแบบเดียวกับที่สัตว์อื่นๆ ทำ
‫ไม่มีอะไรพิเศษที่นี่
‫ทีนี้ มาดูวิธีการสร้างเสียงกัน เพราะวิธีนี้จะค่อนข้างแตกต่างเพราะสุนัขต้องทำให้เสียงถูกต้อง
‫และวิธีการทำเสียงนี้จะวูฟ
‫มันอาจจะเป็นวูฟหรือวูฟหรืออะไรก็ตาม
‫อย่างไรก็ตาม สุนัขของคุณชอบทำเสียง และในกรณีของฉัน สุนัขจะส่งเสียง
‫ดังนั้นสิ่งนี้จะแตกต่างกันไปตามสัตว์ทุกตัว
‫ดังนั้นสัตว์ทุกตัวจะสร้างเสียงที่แตกต่างกัน
‫และนั่นเป็นเหตุผลที่เรากำลังเอาชนะการสร้างเสียงของเรา
‫ก็ทำให้เสียงที่เรามีอยู่ที่นี่
‫เรากำลังเอาชนะมันด้วยการใช้งานส่วนบุคคลของเราสำหรับสุนัขของเรา
‫และตอนนี้เรามาทำสิ่งเดียวกันกับการเล่นกัน เพราะสุนัขต้องการเล่นก็ต่อเมื่อมีความสุขเท่านั้น
‫สมมุติว่าเป็นอย่างนั้น
‫ทีนี้ถ้าเราดูที่การเล่น มันบอกว่า Dog กำลังเล่นอยู่ แต่ฉันไม่พอใจกับผลลัพธ์นี้
‫สมมติว่าสุนัขจะเล่นก็ต่อเมื่อมันเป็นสุนัขที่มีความสุข
‫สิ่งที่เราทำได้คือ เราสามารถแทนที่ โมฆะ เล่น และตรวจสอบว่าสุนัขมีความสุขหรือไม่ แล้วจึงเล่นเท่านั้น
‫ดังนั้นเราจึงได้เขียนทับฟังก์ชันการทำงานของสัตว์พื้นฐานด้วยฟังก์ชันการทำงานที่ดีกับฟังก์ชันการทำงานของเราเองสำหรับสุนัข
‫หรือฟังก์ชันการทำงานเฉพาะของเราสำหรับสุนัขที่เราเพิ่มเงื่อนไข
‫แต่นี่อาจเป็นอะไรก็ได้
‫คุณไม่ จำกัด สภาพของคุณ
‫นี่อาจเป็นเหมือนการใช้งานที่แตกต่างไปจากเดิมอย่างสิ้นเชิง
‫คุณไม่จำเป็นต้องเล่นเบสเลย ดังนั้นคุณจึงใช้อะไรก็ได้ที่คุณต้องการ
‫ตัวอย่างเช่น ในวิธี make sound คุณจะเห็นว่าเราไม่ได้ใช้ base make sound เพราะในวิธี make sound
‫นั้นไม่มีอะไรให้เรียก ดังนั้นจึงไม่มีอะไรน่าสนใจที่นี่
‫แต่ถึงมี เราก็ไม่ต้องเรียกฐาน ทำเสียง หรือฐาน ทำการเล่นแทน
‫เราสามารถนำสิ่งที่แตกต่างไปจากนี้อย่างสิ้นเชิงหากต้องการ
‫นั่นจะเป็นสุนัขของเรา
‫เอาล่ะ ไปบันทึกสองคลาสนั้นและทำงานกับพวกมันในโปรแกรม ไฟล์ CSS ของเรา
‫ตกลง.
‫อย่างแรกเลย เรามาสร้างหมาแบบนี้กัน ผมจะเรียกหมาตัวนั้น ซึ่งจะเป็นหมาตัวใหม่
‫ซึ่งจะมีชื่อ CIF และสุนัขจะอายุ 15 ปี
‫สุนัขแก่ที่สวยมาก
‫และตอนนี้.
‫เราสามารถเขียนอะไรทำนองนี้เพื่อให้เราเข้าถึงทรัพย์สินของสุนัขได้อย่างนั้น
‫ชื่อสุนัขสายสีแดงดังนั้น
‫เราจะได้ชื่อสุนัขและอายุของสุนัขโดยใช้ dog dot name และ dog age
‫จากนั้นเราสามารถเช่นเล่นและกิน
‫โอเค เรามาทำกันอย่างรวดเร็ว
‫อย่าเล่นหมากิน
‫ลองทำสิ่งนี้กัน
‫และเราจะเห็นว่าซีฟอายุ 15 ปี
‫การเล่นที่ปลอดภัยที่สุด การกินบนพื้นผิว
‫ตกลง.
‫เล่นและกินทำงาน
‫ดีมาก
‫แน่นอน ตอนนี้เรายังใช้ Dog Dot ได้
‫และทำเสียงที่นี่
‫ดังนั้นสิ่งนี้จะทำให้สุนัขมีเสียง
‫เรียกใช้สิ่งนี้กันเถอะ
‫และคุณเห็นสต็อกแล้ว Wolf กล่าว
‫ไม่เป็นไร.
‫เรามาสรุปอย่างรวดเร็วและดูว่าสิ่งนี้แตกต่างจากตัวอย่างที่เรามีในวิดีโอที่แล้วอย่างไร
‫ดังนั้นเราจึงมีคลาสฐานของเรา และคลาสฐานนี้มีคุณสมบัติสองสามอย่าง และยังมีเมธอด ฟังก์ชันสองสามอย่างอีกด้วย
‫ดังนั้นที่นี่เพื่อสร้างเสียงเช่นวิธี E เป็นต้น
‫และเราทำให้พวกเขาเสมือนโดยการเพิ่มคำหลักเสมือนเพื่อให้สามารถเปลี่ยนหรือแทนที่ได้ในคลาสที่สืบทอด
‫ดังนั้นสุนัขจึงเป็นคลาสที่สืบทอดหรือคลาสย่อย
‫และคลาสย่อยนี้ช่วยให้เราสามารถแทนที่เมธอดเฉพาะจากคลาสฐานโดยใช้คีย์เวิร์ดแทนที่
‫ดังนั้นตอนนี้จะ
‫แทนที่การทำงาน
‫ดังนั้นจะแทนที่การทำงานหรือรหัสของวิธีการปัจจุบัน
‫เว้นแต่คุณจะใช้สิ่งนี้โดยอ้างอิงจากมัน
‫ดังนั้นสิ่งที่จะทำคือโดยพื้นฐานแล้วจะเรียกเมธอดของคลาสฐานซึ่งหมายถึงพาเรนต์
‫แต่คุณมีอิสระที่จะติดตั้งโค้ดของคุณเองที่นี่
‫คุณไม่จำเป็นต้องเรียกคลาสพื้นฐาน
‫คุณสามารถเพิ่มเงื่อนไขเพื่อให้ฟังก์ชันคลาสพื้นฐานถูกเรียกใช้ในเงื่อนไขเฉพาะได้
‫หรือคุณสามารถเขียนโค้ดใดก็ได้ที่คุณต้องการภายในวิธีการแทนที่ จากนั้นอย่างอื่นจะแตกต่างออกไป
‫และนั่นคือเรากำลังเพิ่มโค้ดให้กับ Constructor ของเราที่นี่
‫คลาสย่อย
‫ดังนั้นคลาสด็อกที่สืบทอดนี้จึงใช้คุณสมบัติเดียวกันกับคลาสพื้นฐานของเรา แต่ในขณะเดียวกันก็มีการใช้งานของตัวเอง
‫จะเกิดอะไรขึ้นเมื่อสุนัขถูกสร้างขึ้น?
‫ดังนั้นเมื่อสร้างวัตถุสุนัขแล้ว?
‫และในกรณีของเรา มันเป็นเพียงการบอกว่าสุนัขจะมีความสุข
‫ไม่เป็นไร.
‫เพียงเท่านี้สำหรับวิดีโอนี้
‫เราจะพิจารณามรดกให้มากขึ้นแน่นอน เพราะยังมีอีกมากที่ต้องเรียนรู้
‫แล้วพบกันใหม่ในวิดีโอหน้า