已有56人关注
C#中接口不可以实例化的问题
发表在C#图书答疑 2009-02-05
是否精华
版块置顶:

interface IEnglishDimensions {
float Length ( ) ;
float Width ( ) ;
}
interface IMetricDimensions {
float Length ( ) ;
float Width ( ) ;
}
class Box : IEnglishDimensions, IMetricDimensions {
float lengthInches ;
float widthInches ;
public Box(float length, float width) {
lengthInches = length ;
widthInches = width ;
}
float IEnglishDimensions.Length( ) {
return lengthInches ;
}
float IEnglishDimensions.Width( ) {
return widthInches ; 
}
float IMetricDimensions.Length( ) {
return lengthInches * 2.54f ;
}
float IMetricDimensions.Width( ) {
return widthInches * 2.54f ;
}
public static void Main( ) {
Box myBox = new Box(30.0f, 20.0f);
// 定义一个接口” eDimensions”::
//IEnglishDimensions eDimensions = (IEnglishDimensions) myBox;
IEnglishDimensions eDimensions = myBox;

//IEnglishDimensions eDimensions;
    
//    eDimensions = myBox;
IMetricDimensions mDimensions = (IMetricDimensions) myBox;
// 输出:
System.Console.WriteLine(" Length(in): {0}", eDimensions.Length( ));

System.Console.WriteLine(" Length(in): {0}", eDimensions.Length());
System.Console.WriteLine(" Width (in): {0}", eDimensions.Width( ));
System.Console.WriteLine(" Length(cm): {0}", mDimensions.Length( ));
System.Console.WriteLine(" Width (cm): {0}", mDimensions.Width( ));
System.Console.ReadLine();

}
}

C#中的接口不能被实例化,然而这个程序中 IEnglishDimensions eDimensions 怎么被实例化了? 我不理解,请高手解释一下。
分享到:
精彩评论 1
小科_mrkj
学分:43 LV2
2009-02-06
沙发
读者朋友:
    您好,接口可以实例化,只不过在接口中不能定义方法的具体实现,它需要在继承接口的方法中实现。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照