C#接口隐式实现和显式实现的学习心得
2011-02-24 22:46
465 查看
下面是一个实现接口的例子:
/// <summary>
/// 接口
/// </summary>
public interface IBankAccount
{
//方法
void displayBalance();
void payIn(decimal amount);
//属性
decimal Balance
{
get;
}
}
/// <summary>
/// 隐式实现IBankAccount接口
/// </summary>
public class ImplicitAccount : IBankAccount
{
private decimal balance;
public void displayClassName()
{
Console.WriteLine("ImplicitAccount");
}
public void displayBalance()
{
Console.WriteLine("Balance:{0}", balance);
}
public void payIn(decimal amount)
{
balance += amount;
}
public decimal Balance
{
get { return balance; }
}
}
/// <summary>
/// 显式实现IBankAccount接口
/// </summary>
public class ExplicitAccount : IBankAccount
{
private decimal balance;
public void displayClassName()
{
Console.WriteLine("ExplicitAccount");
}
void IBankAccount.displayBalance()
{
Console.WriteLine("Balance:{0}", balance);
}
void IBankAccount.payIn(decimal amount)
{
balance += amount;
}
decimal IBankAccount.Balance
{
get { return balance; }
}
}
public class Test
{
public static void Main()
{
ImplicitAccount imAccount = new ImplicitAccount();
imAccount.displayClassName();
imAccount.payIn(100);
imAccount.displayBalance();
ExplicitAccount exAccount = new ExplicitAccount();
exAccount.displayClassName();
//显式实现的接口只能访问接口的方法
//exAccount.payIn(100); //Error 不能访问
//exAccount.displayBalance(); //Error 不能访问
IBankAccount acctoun = new ExplicitAccount();
//acctoun.displayClassName(); //Error 不能访问
acctoun.payIn(100);
acctoun.displayBalance();
Console.ReadKey();
}
}
结论:隐示实现,接口和实现类都可以访问 显示实现只有接口可以访问s
显示实现益处
1:隐藏代码的实现
2:显示实现接口的系统中,调用者只能通过接口调用而不是底层的类来访问。
/// <summary>
/// 接口
/// </summary>
public interface IBankAccount
{
//方法
void displayBalance();
void payIn(decimal amount);
//属性
decimal Balance
{
get;
}
}
/// <summary>
/// 隐式实现IBankAccount接口
/// </summary>
public class ImplicitAccount : IBankAccount
{
private decimal balance;
public void displayClassName()
{
Console.WriteLine("ImplicitAccount");
}
public void displayBalance()
{
Console.WriteLine("Balance:{0}", balance);
}
public void payIn(decimal amount)
{
balance += amount;
}
public decimal Balance
{
get { return balance; }
}
}
/// <summary>
/// 显式实现IBankAccount接口
/// </summary>
public class ExplicitAccount : IBankAccount
{
private decimal balance;
public void displayClassName()
{
Console.WriteLine("ExplicitAccount");
}
void IBankAccount.displayBalance()
{
Console.WriteLine("Balance:{0}", balance);
}
void IBankAccount.payIn(decimal amount)
{
balance += amount;
}
decimal IBankAccount.Balance
{
get { return balance; }
}
}
public class Test
{
public static void Main()
{
ImplicitAccount imAccount = new ImplicitAccount();
imAccount.displayClassName();
imAccount.payIn(100);
imAccount.displayBalance();
ExplicitAccount exAccount = new ExplicitAccount();
exAccount.displayClassName();
//显式实现的接口只能访问接口的方法
//exAccount.payIn(100); //Error 不能访问
//exAccount.displayBalance(); //Error 不能访问
IBankAccount acctoun = new ExplicitAccount();
//acctoun.displayClassName(); //Error 不能访问
acctoun.payIn(100);
acctoun.displayBalance();
Console.ReadKey();
}
}
结论:隐示实现,接口和实现类都可以访问 显示实现只有接口可以访问s
显示实现益处
1:隐藏代码的实现
2:显示实现接口的系统中,调用者只能通过接口调用而不是底层的类来访问。
相关文章推荐
- 转 C# 接口的显式实现和隐式实现
- C#接口-显式接口和隐式接口的实现
- C#接口-显式接口和隐式接口的实现
- C#中接口的显式和隐式实现
- C# 隐式接口与显式接口实现
- C# 接口的显式实现和隐式实现
- C#中的显式和隐式接口实现
- C#.NET隐式和显式接口方法实现幕后发生的故事
- C# 接口的显式实现和隐式实现
- C#中接口的显式和隐式实现
- 【转】C#接口-显式接口和隐式接口的实现
- C#中接口的显式和隐式实现
- C#接口的显示实现和隐式实现
- c#中实现接口与显式实现接口的区别
- C# 接口的隐式与显示实现
- C#中显/隐式实现接口及其访问方法
- 接口的显式实现和隐式实现
- c# 学习笔记 显示实现接口
- c#学习 13/22 文件流与访问修饰符及接口的实现
- C#中的不同类型之间的显式与隐式转换实现