接口Interface

简述:接口定义了所有类继承接口时因遵循的语法合同,所以实现接口的类或结构必须实现接口定义中指定的接口成员。

声明接口

interface 接口名称
{
接口成员;
}

1、单继承接口

第14节、C#接口Interface_Interface

 

 

第14节、C#接口Interface_C#_02第14节、C#接口Interface_Interface_03

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1
{   public interface I接口
    {//获取面积decimal GetArea();//获取周长decimal GetPerimeter(decimal X, decimal Y);
    }   public class 学生A : I接口
   { 
       public decimal longs;       public decimal Longs { get { return longs; } set { longs = value; } }       public decimal high;       public decimal High { get { return high; } set { high = value; } }       public 学生A(decimal longs, decimal high)
       {
           Longs = longs;
           High = high;
       }       public decimal GetArea()
       {           return Convert.ToDecimal(longs * high);
       }       public decimal GetPerimeter(decimal his,decimal lgs)
       {           return Convert.ToDecimal((his + lgs)*2);
       }
   }   public class 程序入口
   {       public static void Main(string[] obj)
       {
           学生A A = new 学生A(5,6);
           Console.WriteLine("学生A计算面积:{0}", A.GetArea());
           Console.WriteLine("学生A计算周长:{0}", A.GetPerimeter(2, 3));
           Console.ReadLine();
       }
   }
}

View Code

错误一、结构方法体加访问修饰符执行错误

第14节、C#接口Interface_C#_04

 

 2、多继承(接口之间的继承关系)

C继承B接口,B接口继承A接口,B和A互为继承关系。通过派生类实现接口中所有接口方法。

第14节、C#接口Interface_Interface_05

 

 

第14节、C#接口Interface_C#_02第14节、C#接口Interface_Interface_03

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace ConsoleApplication1 8 { 9    public interface I接口10     {11         //获取面积12       decimal GetArea();13         //获取周长14       decimal GetPerimeter(decimal X, decimal Y);15     }16 17    public interface I接口2 : I接口18    {19        decimal Getvolume(decimal X, decimal Y, decimal Z);20    }21 22    public class 学生A : I接口223    { 
24        public decimal longs;25        public decimal Longs { get { return longs; } set { longs = value; } }26        public decimal high;27        public decimal High { get { return high; } set { high = value; } }28 29        public 学生A(decimal longs, decimal high)30        {31            Longs = longs;32            High = high;33        }34        public decimal GetArea()35        {36            return Convert.ToDecimal(longs * high);37        }38        public decimal GetPerimeter(decimal his,decimal lgs)39        {40            return Convert.ToDecimal((his + lgs)*2);41        }42 43        public decimal Getvolume(decimal his, decimal lgs, decimal z)44        {45            return Convert.ToDecimal(his * lgs * z);46        }47 48    }49 50    public class 程序入口51    {52        public static void Main(string[] obj)53        {54            学生A A = new 学生A(5,6);55            Console.WriteLine("学生A计算面积:{0}", A.GetArea());56            Console.WriteLine("学生A计算周长:{0}", A.GetPerimeter(2, 3));57            Console.WriteLine("学生A计算体积:{0}", A.Getvolume(2, 3, 4));58            Console.ReadLine();59        }60    }61 }

View Code

 

错误二、未完成实现接口所有方法

第14节、C#接口Interface_C#_08

 

 3、接口多重继承 使用逗号分开