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; }
        }
    
    }
  • 相关阅读:
    [Leetcode Week17]Copy List with Random Pointer
    [Leetcode Week16]Range Sum Query
    [Leetcode Week16]Insertion Sort List
    [Leetcode Week15]Populating Next Right Pointers in Each Node II
    [Leetcode Week15]Populating Next Right Pointers in Each Node
    [Leetcode Week15] Add Two Numbers
    [Leetcode Week14]Path Sum II
    [Leetcode Week14]Construct Binary Tree from Inorder and Postorder Traversal
    [Leetcode Week14]Maximum Binary Tree
    [Leetcode Week13]Search a 2D Matrix
  • 原文地址:https://www.cnblogs.com/youguess/p/8715586.html
Copyright © 2011-2022 走看看