摘要:C#:同時繼承含有相同方法簽名的基類和接口,顯示實現接口
基類和接口含有相同方法簽名時,為了避免命名衝突,要顯示實現接口。
public class MyCustomer : Customer, ICustomer
{
public override void Fun()
{
Console.WriteLine("abstract class fun");
}
void ICustomer.Fun()
{
Console.WriteLine("interface class fun");
}
}
public abstract class Customer
{
public abstract void Fun();
}
public interface ICustomer
{
void Fun();
}
實現接口有兩種方式:顯示和隱式
ICustomer.Fun()這種方式為顯示實現,使用時只能如下:
MyCustomer c = new MyCustomer();
((ICustomer)c).Fun();
注意:這種實現不能加public關鍵字,實際上,因為訪問只能通過轉換,就好像這個方法不屬於實現類一樣(事實不是)。
加了public的是實現基類抽象類中的方法。