3. 接口多重接口

Posted LiuChangwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3. 接口多重接口相关的知识,希望对你有一定的参考价值。

接口、多重接口:

  定义:接口是指定一组函数成员而不实现成员的引用类型,其他类型 —— 类和结构可以实现接口。

 1 /**
 2  * 一: 1)定义 ICalculate 接口,接口文件如下:
 3  *       interface ICalculate
 4  *       {
 5  *           void getArea(); //计算圆面积。
 6  *           void getZC(); //计算圆周长
 7  *       }
 8  *       2) 定义 Circularity 类,实现接口Calculate. 且调试后输出结果。
 9  */
10 using System;
11 using System.Collections.Generic;
12 using System.Linq;
13 using System.Text;
14 using System.Threading.Tasks;
15 
16 namespace SecondAssignment
17 {
18     //定义 ICalculate 接口
19     interface ICalculate
20     {
21         void getArea(); //计算圆面积
22         void getZC();   //计算圆周长
23     }
24     class Circularity:ICalculate
25     {
26         //显示实现计算圆的面积
27         void ICalculate.getArea()
28         {
29             Console.WriteLine("请输入圆的半径(int)求面积:");
30             int r = int.Parse(Console.ReadLine());
31             double _Area = 0;
32             _Area = Math.PI * r * r ;
33             Console.WriteLine("圆的面积为:"+_Area);
34         }
35         //先生实现计算圆的周长
36         void ICalculate.getZC()
37         {
38             Console.WriteLine("请输入圆的半径(int)求周长:");
39             int r = int.Parse(Console.ReadLine());
40             double d = 0;
41             d = Math.PI * r * 2;
42             Console.WriteLine("圆的周长为:"+d);
43         }
44     }
45     class Test
46     {
47         static void Main(string[] args)
48         {
49             //通过接口调用输出
50             ICalculate calculate = new Circularity();
51             calculate.getArea();
52             Console.WriteLine();
53             calculate.getZC();
54             Console.ReadKey();
55         }
56     }
57 }
 1 /**
 2  * 二: 设计一个类 TClass , 继承下面的接口 IMeasure, 
 3  * 实现其中的 Length() 与 Area()方法,来计算特定长度等边三角形的周长和面积。
 4  *   interface IMeasure
 5  *   {
 6  *       int Length(int s);
 7  *       int Area(int s);
 8  *   }
 9  */
10 using System;
11 using System.Collections.Generic;
12 using System.Linq;
13 using System.Text;
14 using System.Threading.Tasks;
15 
16 namespace SecondAssignment
17 {
18     //计算特定长度等边三角形的周长和面积。
19     interface IMeasure
20     {
21         int Length(int s);                                  //计算周长
22         int Area(int s);                                    //计算面积
23     }
24     class TClass : IMeasure
25     {
26         //求周长
27         int IMeasure.Length(int s)
28         {
29             int _length = s * 3;
30             return _length;
31         }
32         //求面积
33         int IMeasure.Area(int s)
34         {
35             double h = Math.Sin(Math.PI/3) * s;             //角度不能直接输入数值,需要 Math.PI 进行转换
36             double _Area = (s * h) / 2;
37             return Convert.ToInt32(_Area);
38         }
39     }
40 }

 

 1 /**
 2  *  三:设计一个类 TClass, 继承下面的接口 IMeasure, 
 3  * 实现其中的 Length() 与 Area()方法,来计算特定长度等边三角形的周长和面积。
 4     interface IMeasure
 5     {
 6         int Length(int s);
 7         int Area(int s);
 8     }
 9  *  设计一个测试程序,创建 TClass 的实例对象,调用其中的方法计算边长为 10 的三角形面积和周长。
10  */
11 using System;
12 using System.Collections.Generic;
13 using System.Linq;
14 using System.Text;
15 using System.Threading.Tasks;
16 
17 namespace SecondAssignment
18 {
19     //计算特定长度等边三角形的周长和面积。
20     interface IMeasure
21     {
22         int Length(int s);                                  //计算周长
23         int Area(int s);                                    //计算面积
24     }
25     class TClass : IMeasure
26     {
27         //求周长
28         int IMeasure.Length(int s)
29         {
30             int _length = s * 3;
31             return _length;
32         }
33         //求面积
34         int IMeasure.Area(int s)
35         {
36             double h = Math.Sin(Math.PI/3) * s;             //角度不能直接输入数值,需要 Math.PI 进行转换
37             double _Area = (s * h) / 2;
38             return Convert.ToInt32(_Area);
39         }
40         //测试方法
41         static void Main(string[] args)
42         {
43             IMeasure T = new TClass();
44             Console.WriteLine("周长为:"+ T.Length(10));     //求周长
45             Console.WriteLine("面积为:" + T.Area(10));      //求面积
46             Console.ReadKey();
47         }
48     }
49 }

 

以上是关于3. 接口多重接口的主要内容,如果未能解决你的问题,请参考以下文章

定义接口并模拟一个硬盘的功能包括接口实现多重继承

C ++如何从具有不同返回类型的接口多重继承?

为啥要使用接口,多重继承与接口,接口的好处?

从父片段到选项卡片段的接口侦听器不起作用

重构_使用设计模式替代多重判断

04.Delphi通过接口IInterface实现多重继承