首页 > 学院 > 开发设计 > 正文

接口里不能包括字段,构造函数,析构函数,静态成员或常量等,否则会导致错误

2019-11-14 13:48:11
字体:
来源:转载
供稿:网友
定义一个借口,接口封装了矩形的长和宽,而且还包含一个自定义的方法以计算矩形的面积。然后定义一个类,继承自该接口,在该类中实现接口中自定义方法。

1
using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Test06 7 { 8 interface ImyInterface 9 {10 /// <summary>11 ///12 /// </summary>13 int Width14 {15 get;16 set;17 }18 /// <summary>19 ///20 /// </summary>21 int Height22 {23 get;24 set;25 }26 /// <summary>27 /// 计算矩形面积28 /// </summary>29 int Area();////////  int Area(int Width, int Height); 30 }31 class PRogram : ImyInterface//继承自接口32 {33 private int width = 0;34 private int height = 0;35 /// <summary>36 ///37 /// </summary>38 public int Width39 {40 get41 {42 return width;43 }44 set45 {46 width = value;47 }48 }49 /// <summary>50 ///51 /// </summary>52 public int Height53 {54 get55 {56 return height;57 }58 set59 {60 height = value;61 }62 }63 /// <summary>64 /// 计算矩形面积65 /// </summary>66 public int Area(int Width,int Height)67 {68 return Width * Height;69 }70 static void Main(string[] args)71 {72 Program program = new Program();//实例化Program类对象73 ImyInterface imyinterface = program;//使用派生类对象实例化接口ImyInterface74 imyinterface.Width = 5;//为派生类中的Width属性赋值75 imyinterface.Height = 3;//为派生类中的Height属性赋值76 Console.WriteLine("矩形的面积为:" + imyinterface.Area(3,5));77 }78 }79 }

下面是正确的:
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace Test06 7 { 8     interface ImyInterface 9     {10         /// <summary>11         ///12         /// </summary>13         int Width14         {15             get;16             set;17         }18         /// <summary>19         ///20         /// </summary>21         int Height22         {23             get;24             set;25         }26         /// <summary>27         /// 计算矩形面积28         /// </summary>29         int Area();30     }31     class Program : ImyInterface//继承自接口32     {33         int width = 0;34         int height = 0;35         /// <summary>36         ///37         /// </summary>38         public int Width39         {40             get41             {42                 return width;43             }44             set45             {46                 width = value;47             }48         }49         /// <summary>50         ///51         /// </summary>52         public int Height53         {54             get55             {56                 return height;57             }58             set59             {60                 height = value;61             }62         }63         /// <summary>64         /// 计算矩形面积65         /// </summary>66         public int Area()67         {68             return Width * Height;69         }70         static void Main(string[] args)71         {72             Program program = new Program();//实例化Program类对象73             ImyInterface imyinterface = program;//使用派生类对象实例化接口ImyInterface74             imyinterface.Width = 5;//为派生类中的Width属性赋值75             imyinterface.Height = 3;//为派生类中的Height属性赋值76             Console.WriteLine("矩形的面积为:" + imyinterface.Area());77         }78     }79 }

 本题的关键出错点是:在接口里声明方法的时候的形式要与接口的实现里面方法的定义形式保持一致,否则会出现错误:“

错误 1 “Area”方法没有任何重载采用“2”个参数”

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表