C# 接口类型
什么是接口
个人理解,接口有点像 C 语言的前置申明。I开头命名,默认为 public, 分号结束,没有实现体。继承它的类必须全部实现接口成员。
public interface IComparable
{
    int CompareT0(object obj);
}
实现接口
接口放在基类后面,类可以继承多个接口,用,号分开。
class Cat : Animal, ILiveBird
{
    string ILiveBird.BabyCalled()
    {
        return "Kitten";
    }
}
接口是引用类型
接口是引用类型。
接口类型转换建议用as运算符
as运算符的强制转换时,失败返回null,不会引发异常。
实现具有重复成员的接口
类内可以实现单个成员即可满足所有重复成员的接口。
派生类可以作为接口的实现
从基类派生过来的成员可以作为接口的实现成员。
显式接口成员
显式接口成员只能通过转化成接口引用类型才能实现访问,类实例不能够访问。
可以看之前的这篇笔记:https://www.cnblogs.com/huvjie/p/15341309.html。
实现的显式接口成员前面不能加public等访问修饰符,因为类外根本不能够直接访问。但没有public也是可以被继承的。
using System;
namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            Test test = new Test();
            ILiveBird liveBird = test as ILiveBird; // 需要强制转化
            if (liveBird != null)
                Console.WriteLine(liveBird.BabyCalled());
            else
                Console.WriteLine("null");
        }
    }
    interface ILiveBird
    {
        string BabyCalled();
    }
    class Animal { }
    class Cat : Animal, ILiveBird
    {
        string ILiveBird.BabyCalled()
        {
            return "Kitten";
        }
    }
    class Test:Cat
    {
    }
}
输出:
Kitten  // 需要强制转化成接口类型

▲ 不能加`public`等访问修饰符
接口可以继承接口
当然在类内都要被实现。
不同类实现一个接口
可以看之前的这篇笔记:https://www.cnblogs.com/huvjie/p/15341309.html。
参考:
- 详细的内容可以看下《C# 图解教程》 P275 页。
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号