ฉันต้องการทราบว่าคลาสสามารถสืบทอดจากคลาสและส่วนต่อประสานได้หรือไม่ ตัวอย่างโค้ดด้านล่างใช้งานไม่ได้ แต่ฉันคิดว่ามันบ่งบอกถึงสิ่งที่ฉันต้องการจะทำ เหตุผลที่ฉันต้องการทำเช่นนี้เป็นเพราะ บริษัท ของฉันทำ USB, ซีเรียล, อีเธอร์เน็ตและอุปกรณ์อื่น ๆ ฉันกำลังพยายามพัฒนาส่วนประกอบ / อินเตอร์เฟสทั่วไปที่ฉันสามารถใช้เพื่อเขียนโปรแกรมสำหรับอุปกรณ์ทั้งหมดของเราที่จะช่วยให้สิ่งต่าง ๆ (เช่นการเชื่อมต่อการตัดการเชื่อมต่อการรับเฟิร์มแวร์) เหมือนกันสำหรับแอปพลิเคชันทั้งหมดของเรา
เพื่อเพิ่มคำถามนี้: ถ้า GenericDevice อยู่ในโครงการที่แตกต่างกันฉันสามารถใส่อินเทอร์เฟซ IOurDevices ในโครงการนั้นจากนั้นให้คลาส USBDevice ใช้อินเทอร์เฟซถ้าฉันเพิ่มการอ้างอิงถึงโครงการแรกหรือไม่ เพราะต้องการอ้างอิงเพียงหนึ่งโครงการจากนั้นใช้อินเทอร์เฟซที่แตกต่างกันขึ้นอยู่กับว่าอุปกรณ์คืออะไร
class GenericDevice
{
private string _connectionState;
public connectionState
{
get{return _connectionState; }
set{ _connectionState = value;}
}
}
interface IOurDevices
{
void connectToDevice();
void DisconnectDevice();
void GetFirmwareVersion();
}
class USBDevice : IOurDevices : GenericDevice
{
//here I would define the methods in the interface
//like this...
void connectToDevice()
{
connectionState = "connected";
}
}
//so that in my main program I can do this...
class myProgram
{
main()
{
USBDevice myUSB = new USBDevice();
myUSB.ConnectToDevice;
}
}