03. 接口、多重接口
接口、多重接口:
定义:接口是指定一组函数成员而不实现成员的引用类型,其他类型 —— 类和结构可以实现接口。
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 }