Tôi muốn biết nếu một lớp có thể kế thừa từ một lớp và một giao diện. Mã ví dụ dưới đây không hoạt động nhưng tôi nghĩ nó truyền tải những gì tôi muốn làm. Lý do mà tôi muốn làm điều này là vì tại công ty của tôi, chúng tôi sản xuất thiết bị USB, nối tiếp, Ethernet, v.v. Tôi đang cố gắng phát triển một thành phần / giao diện chung mà tôi có thể sử dụng để viết chương trình cho tất cả các thiết bị của chúng tôi sẽ giúp giữ những thứ phổ biến (như kết nối, ngắt kết nối, nhận phần sụn) giống nhau cho tất cả các ứng dụng của chúng tôi.
Để thêm vào câu hỏi này: Nếu GenericDevice nằm trong dự án khác, tôi có thể đặt giao diện IOurDevices trong dự án đó không, sau đó làm cho lớp USBDevice thực hiện giao diện nếu tôi thêm một tham chiếu đến dự án đầu tiên? Bởi vì chỉ muốn tham khảo một dự án và sau đó thực hiện các giao diện khác nhau tùy thuộc vào thiết bị là gì.
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;
}
}