คำถามติดแท็ก multiple-inheritance

คุณลักษณะของภาษาการเขียนโปรแกรมคอมพิวเตอร์เชิงวัตถุซึ่งคลาสสามารถสืบทอดพฤติกรรมและคุณลักษณะจากซูเปอร์คลาสหรือคลาสพื้นฐานได้มากกว่าหนึ่งคลาส

7
Java - ชื่อเมธอดชนกันในการใช้งานอินเตอร์เฟส
ถ้าฉันมีสองอินเทอร์เฟซทั้งสองอย่างแตกต่างกันในวัตถุประสงค์ของพวกเขา แต่มีลายเซ็นวิธีเดียวกันฉันจะทำให้คลาสใช้ทั้งสองอย่างโดยไม่ถูกบังคับให้เขียนเมธอดเดียวที่ทำหน้าที่ทั้งอินเทอร์เฟซและการเขียนตรรกะที่ซับซ้อนในเมธอด การใช้งานที่ตรวจสอบว่ามีการเรียกใช้วัตถุประเภทใดและเรียกใช้รหัสที่เหมาะสม? ใน C # สิ่งนี้ถูกเอาชนะโดยสิ่งที่เรียกว่าการใช้งานอินเทอร์เฟซที่ชัดเจน มีวิธีที่เทียบเท่าใน Java หรือไม่?

2
ทำ Derived1 :: ฐานและ Derived2 :: ฐานอ้างถึงชนิดเดียวกันหรือไม่
MSVC, Clang และ GCC ไม่เห็นด้วยกับรหัสนี้: struct Base { int x; }; struct Der1 : public Base {}; struct Der2 : public Base {}; struct AllDer : public Der1, public Der2 { void foo() { Der1::Base::x = 5; } }; Godbolt GCC: <source>: In member function 'void AllDer::foo()': <source>:10:21: error: 'Base' …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.