zoukankan      html  css  js  c++  java
  • 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; }
        }
    
    }
  • 相关阅读:
    iOS $299刀企业证书申请的过程以及细节补充
    关于移动开发的一些想法和认识--Android和iOS
    iOS设备的越狱方法
    iOS越狱开发(一)
    iOS开发中 workspace 与 static lib 工程的联合使用
    高效 Java Web 开发框架 JessMA v3.5.1
    跨平台日志清理工具 Log-Cutter v2.0.1 正式发布
    【新年呈献】高性能网络通信框架 HP-Socket v5.7.1
    高性能网络通信框架 HP-Socket v5.2.1
    跨年呈献:HP-Socket for Linux 1.0 震撼发布
  • 原文地址:https://www.cnblogs.com/youguess/p/8715586.html
Copyright © 2011-2022 走看看