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

การสืบทอดคือระบบในการเขียนโปรแกรมเชิงวัตถุที่อนุญาตให้วัตถุสนับสนุนการดำเนินการที่กำหนดโดยชนิดล่วงหน้าโดยไม่ต้องให้คำจำกัดความของตนเอง มันเป็นเวกเตอร์ที่สำคัญสำหรับความหลากหลายในการเขียนโปรแกรมเชิงวัตถุ

9
มีวิธีในการยกตัวอย่างวัตถุจากสตริงที่มีชื่อชั้นของพวกเขาหรือไม่?
ฉันมีไฟล์: Base.h class Base; class DerivedA : public Base; class DerivedB : public Base; /*etc...*/ และไฟล์อื่น: BaseFactory.h #include "Base.h" class BaseFactory { public: BaseFactory(const string &sClassName){msClassName = sClassName;}; Base * Create() { if(msClassName == "DerivedA") { return new DerivedA(); } else if(msClassName == "DerivedB") { return new DerivedB(); } else …

14
วิธีการคงที่ได้รับมรดกใน Java?
ฉันอ่านคู่มือโปรแกรมเมอร์ของ Java ™ SCJP Certificationโดย Khalid Mughal ในบทที่สืบทอดมันอธิบายว่า การสืบทอดของสมาชิกเชื่อมโยงอย่างใกล้ชิดกับการเข้าถึงที่ประกาศไว้ หากสมาชิกระดับซุปเปอร์คลาสสามารถเข้าถึงได้โดยใช้ชื่อแบบง่ายในคลาสย่อย (โดยไม่ต้องใช้ไวยากรณ์เพิ่มเติมใด ๆ เช่น super) สมาชิกนั้นจะถูกพิจารณาว่าสืบทอด นอกจากนี้ยังกล่าวถึงวิธีการคงที่ไม่ได้รับการสืบทอด แต่โค้ดด้านล่างนี้ใช้ได้อย่างสมบูรณ์แบบ: class A { public static void display() { System.out.println("Inside static method of superclass"); } } class B extends A { public void show() { // This works - accessing display() by its simple …
142 java  inheritance  static 

10
คลาสนามธรรมในภาษาสวิฟท์
มีวิธีในการสร้างคลาสนามธรรมในภาษา Swift หรือนี่เป็นข้อ จำกัด เช่นเดียวกับ Objective-C หรือไม่? ฉันต้องการสร้างคลาสนามธรรมเปรียบได้กับสิ่งที่ Java กำหนดเป็นคลาสนามธรรม

6
จุดประสงค์ของฟังก์ชั่นเสมือนส่วนตัวที่บริสุทธิ์คืออะไร?
ฉันเจอรหัสต่อไปนี้ในไฟล์ส่วนหัว: class Engine { public: void SetState( int var, bool val ); { SetStateBool( int var, bool val ); } void SetState( int var, int val ); { SetStateInt( int var, int val ); } private: virtual void SetStateBool(int var, bool val ) = 0; virtual void SetStateInt(int var, int …

10
วิธีที่มีประสิทธิภาพที่สุดในการส่ง List <SubClass> ไปยัง List <BaseClass>
ฉันมีสิ่งList&lt;SubClass&gt;ที่ฉันต้องการรักษาเป็นไฟล์List&lt;BaseClass&gt;. ดูเหมือนว่ามันไม่น่าจะเป็นปัญหาเนื่องจากการแคสต์ a SubClassto a BaseClassเป็นเรื่องง่าย แต่คอมไพเลอร์ของฉันบ่นว่าการแคสต์เป็นไปไม่ได้ ดังนั้นวิธีที่ดีที่สุดในการอ้างอิงถึงวัตถุเดียวกันกับ a List&lt;BaseClass&gt;คืออะไร? ตอนนี้ฉันเพิ่งสร้างรายการใหม่และคัดลอกรายการเก่า: List&lt;BaseClass&gt; convertedList = new ArrayList&lt;BaseClass&gt;(listOfSubClass) แต่อย่างที่เข้าใจว่าต้องสร้างรายการใหม่ทั้งหมด ฉันต้องการอ้างอิงรายการต้นฉบับถ้าเป็นไปได้!

7
แสดงรายการคลาสพื้นฐานทั้งหมดในลำดับชั้นของคลาสที่กำหนดหรือไม่
เมื่อพิจารณาถึงคลาสFoo(ไม่ว่าจะเป็นคลาสสไตล์ใหม่หรือไม่ก็ตาม) คุณจะสร้างคลาสพื้นฐานทั้งหมดได้อย่างไร- ที่ใดก็ได้ในลำดับชั้นการสืบทอด - issubclassจาก?

12
ใน Java ฉันจะเรียกวิธีการของคลาสพื้นฐานจากวิธีการเอาชนะในคลาสที่ได้รับมาได้อย่างไร
ฉันมีคลาส Java สองคลาส: B ซึ่งขยายคลาส A อื่นดังนี้: class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { /* Another code */ } } ผมอยากจะเรียกจากA.myMethod() B.myMethod()ฉันมาจากโลก C ++และฉันไม่รู้วิธีการทำสิ่งพื้นฐานใน Java

9
คุณจำลองการสืบทอดอย่างมีประสิทธิภาพในฐานข้อมูลได้อย่างไร?
แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างแบบจำลองการสืบทอดในฐานข้อมูลคืออะไร? อะไรคือการแลกเปลี่ยน (เช่นความสามารถในการตอบสนอง)? (ฉันสนใจ SQL Server และ. NET มากที่สุด แต่ฉันก็อยากเข้าใจว่าแพลตฟอร์มอื่น ๆ แก้ไขปัญหานี้อย่างไร)

4
ใน C # คลาสสามารถสืบทอดจากคลาสอื่นและอินเตอร์เฟสได้หรือไม่?
ฉันต้องการทราบว่าคลาสสามารถสืบทอดจากคลาสและส่วนต่อประสานได้หรือไม่ ตัวอย่างโค้ดด้านล่างใช้งานไม่ได้ แต่ฉันคิดว่ามันบ่งบอกถึงสิ่งที่ฉันต้องการจะทำ เหตุผลที่ฉันต้องการทำเช่นนี้เป็นเพราะ บริษัท ของฉันทำ USB, ซีเรียล, อีเธอร์เน็ตและอุปกรณ์อื่น ๆ ฉันกำลังพยายามพัฒนาส่วนประกอบ / อินเตอร์เฟสทั่วไปที่ฉันสามารถใช้เพื่อเขียนโปรแกรมสำหรับอุปกรณ์ทั้งหมดของเราที่จะช่วยให้สิ่งต่าง ๆ (เช่นการเชื่อมต่อการตัดการเชื่อมต่อการรับเฟิร์มแวร์) เหมือนกันสำหรับแอปพลิเคชันทั้งหมดของเรา เพื่อเพิ่มคำถามนี้: ถ้า GenericDevice อยู่ในโครงการที่แตกต่างกันฉันสามารถใส่อินเทอร์เฟซ IOurDevices ในโครงการนั้นจากนั้นให้คลาส USBDevice ใช้อินเทอร์เฟซถ้าฉันเพิ่มการอ้างอิงถึงโครงการแรกหรือไม่ เพราะต้องการอ้างอิงเพียงหนึ่งโครงการจากนั้นใช้อินเทอร์เฟซที่แตกต่างกันขึ้นอยู่กับว่าอุปกรณ์คืออะไร class GenericDevice { private string _connectionState; public connectionState { get{return _connectionState; } set{ _connectionState = value;} } } interface IOurDevices { void connectToDevice(); void DisconnectDevice(); …


6
คลาส Python ทั้งหมดควรขยายออบเจ็กต์หรือไม่
ฉันพบว่าทั้งสองงานต่อไปนี้: class Foo(): def a(self): print "hello" class Foo(object): def a(self): print "hello" คลาส Python ทั้งหมดควรขยายออบเจ็กต์หรือไม่ มีปัญหาที่อาจเกิดขึ้นกับการไม่ขยายวัตถุหรือไม่?

10
ทำไมโครงสร้างไม่รองรับการสืบทอด
ฉันรู้ว่าโครงสร้างใน. NET ไม่รองรับการสืบทอด แต่ไม่ชัดเจนว่าทำไมจึงถูก จำกัด ด้วยวิธีนี้ เหตุผลทางเทคนิคใดที่ป้องกันไม่ให้โครงสร้างรับช่วงจากโครงสร้างอื่น ๆ
129 .net  inheritance  struct 


7
อินเทอร์เฟซสามารถขยายหลายอินเทอร์เฟซใน Java ได้หรือไม่?
อินเทอร์เฟซสามารถขยายหลายอินเทอร์เฟซใน Java ได้หรือไม่? รหัสนี้ถูกต้องใน IDE ของฉันและจะรวบรวม: interface Foo extends Runnable, Set, Comparator&lt;String&gt; { } แต่ฉันเคยได้ยินมาว่าไม่อนุญาตให้มีการสืบทอดหลายรายการใน Java เหตุใดจึงมีข้อยกเว้นสำหรับอินเทอร์เฟซ

7
มรดกทับทิมเทียบกับมิกซ์อิน
ใน Ruby เนื่องจากคุณสามารถรวมมิกซ์อินได้หลายรายการ แต่ขยายได้เพียงคลาสเดียวดูเหมือนว่ามิกซ์อินจะเป็นที่ต้องการมากกว่าการสืบทอด คำถามของฉัน: ถ้าคุณกำลังเขียนโค้ดที่ต้องขยาย / รวมเพื่อเป็นประโยชน์ทำไมคุณถึงทำให้มันเป็นคลาสล่ะ? หรือพูดอีกอย่างทำไมคุณไม่ทำให้มันเป็นโมดูลเสมอไปล่ะ? ฉันคิดได้เพียงเหตุผลเดียวว่าทำไมคุณถึงต้องการชั้นเรียนและนั่นคือถ้าคุณต้องการสร้างอินสแตนซ์ของชั้นเรียน อย่างไรก็ตามในกรณีของ ActiveRecord :: Base คุณจะไม่สร้างอินสแตนซ์โดยตรง มันไม่ควรเป็นโมดูลแทนหรือ?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.