这是接口如何使用子类参数实现接口方法?
public interface ITransporter
{
TransporterType TransporterType { get; set; }
TransportActionResults BeginTransport(
Project sourceProject,
ProjectBase targetProject);
bool CheckTargetExists(ProjectBase project);
}
这里ProjectBase
是所有类型的项目类的抽象类。 这里是类内实现ITransporter
接口的方法。
public class LocalTransporter : ITransporter
{
public TransportActionResults BeginTransport(
Project sourceProject,
TargetLocalProject targetProject)
{
return TransportActionResults.Success;
}
这TargetLocalProject
类从ProjectBase
类继承。但是,我收到一个错误,指出“LocalTransporter类不实现接口成员”并指向BeginTransport
方法。
这是我的问题。我需要使用基类ProjectBase
来实现接口的BeginTransport
方法,因为从基类继承了几个不同的项目类,我们不知道将使用哪一个。
此外,有几个不同的Transporter
类型,所以我需要使用接口ITransporter
与它交互。
注:我认为实现使用TargetLocalProject
而是直接使用(而不是thruogh接口)LocalTransporter
当参数的类型应该是具体的项目类型,而不是基类ProjectBase
而不是方法。
我希望我明确自己。那么,有没有办法在接口中使用基类来实现这个接口方法,但是在实现的方法中使用了子类吗?
听起来像你想让你的界面通用。 – juharr
@juharr你是对的,以及答案。 – ozgur