sar*_*ran 4 .net c# oop sqlconnection multiple-inheritance
请帮我理解以下内容:
public sealed class SqlConnection : DbConnection, ICloneable {...}
Run Code Online (Sandbox Code Playgroud)
在上面的课程中我有两个疑问
在C#中,多重继承是不可能的(我们可以通过接口实现这一点).但是这里DBconnection不是一个接口那么它如何支持多重继承呢?
Iclonable是一个接口.它有一个名为object Clone()的方法.但是在Sqlconnection Class中没有实现该方法.怎么可能?
请帮我理解这个
这里没有多重遗产.您可以从一个类继承并实现多个接口.在这里,DBConnection
是一个类,IClonable
是一个interface
IClonable声明为an Explicit Interface
,这意味着您无法直接从类实例访问它,但必须显式转换为接口类型
例
interface IDimensions
{
float Length();
float Width();
}
class Box : IDimensions
{
float lengthInches;
float widthInches;
public Box(float length, float width)
{
lengthInches = length;
widthInches = width;
}
// Explicit interface member implementation:
float IDimensions.Length()
{
return lengthInches;
}
// Explicit interface member implementation:
float IDimensions.Width()
{
return widthInches;
}
public static void Main()
{
// Declare a class instance "myBox":
Box myBox = new Box(30.0f, 20.0f);
// Declare an interface instance "myDimensions":
IDimensions myDimensions = (IDimensions) myBox;
// Print out the dimensions of the box:
/* The following commented lines would produce compilation
errors because they try to access an explicitly implemented
interface member from a class instance: */
//System.Console.WriteLine("Length: {0}", myBox.Length());
//System.Console.WriteLine("Width: {0}", myBox.Width());
/* Print out the dimensions of the box by calling the methods
from an instance of the interface: */
System.Console.WriteLine("Length: {0}", myDimensions.Length());
System.Console.WriteLine("Width: {0}", myDimensions.Width());
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
852 次 |
最近记录: |