C#面向对象21 接口

接口的规范:

1.接口是一种规范。只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员。

2.为了多态,接口不能被实例化,接口不new(不能创建对象)

3.接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。

4.(默认为public)接口中的成员不能有任何实现(只是定义了一组未实现的成员)。

5.接口中只能有方法,属性,索引器,事件,不能有字段和构造函数。

6.接口与接口之间可以继承,并且可以多继承。

7.接口并不能去继承一个类,而类可以继承接口(接口只能继承于接口,而类既可以继承于接口,也可以继承于类).

8.继承接口的子类必须实现该接口的全部成员。

9.一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须写在IA的前面。

10.显示实现接口的目的:解决方法的重名问题

当继承的接口中的方法和参数一模一样的时间,用显示的实现接口.

11.当一个抽象类实现接口的时候,需要子类去实现接口。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 接口
{
    class Program
    {
        static void Main(string[] args)
        {
            //接口就是一个规范,能力
            //语法:[public] interface I..able{ ...成员 }
            /*
            1.接口中的成员不允许添加访问修饰符,默认是public
            2.接口成员不能有定义,不允许具有方法体的函数
            3.接口不能包含字段
            4.自动属性
             * */


        }

    }

    public class Person
    {
       public void Chlss()
        {
            Console.WriteLine("Chlss");
        }
    }

    public class NbaPlayer:Ikoulanable
    {
        //显示实现接口
        void Ikoulanable.koulan()
        {
            Console.WriteLine("111");
        }

        public void koulan()
        {
            Console.WriteLine("koulan");
        }
    }

    public class Student:Person,Ikoulanable
    {
        public void koulan()
        {
            Console.WriteLine("koulan_2");
        }
    }

    public interface Ikoulanable
    {
        void koulan();
    }

    public interface IFlyable
    {
        //接口中的成员不允许添加访问修饰符,默认是public
        //接口成员不能有定义,不允许具有方法体的函数
        //接口不能包含字段
        void Fly();
        string Fly2();
        //自动属性
        string Name { get; set; }
    }

}
原文地址:https://www.cnblogs.com/youguess/p/8715586.html