zoukankan      html  css  js  c++  java
  • Csharp多态的实现(接口)

    1.什么是接口

    接口可以看做是一个标准, 所有继承的子类需要按照接口中声明的方法来

    接口用关键字 interface 修饰,接口的名字一般是I.........able ,表示我有什么能力

    接口一般是在命名空间下的,也就是说跟类是在同一级别的  (接口也可以放在类里面,但是没有什么意义,因为可以把接口看做是一个特殊的类,类是解决方法,接口也是,所以放在里面没什么屌意思)

    接口里面的方法,属性不能用public,private等修饰

    接口里面的方法不实现,只声明,真正的实现是在继承的子类中实现

    接口里面只能放属性,方法,不能放字段

    当然,这些都可以在代码中观察出来

    2.接下来用代码来实现多态,然后观察一下,有什么特点

    //首先在命名空间下面声明一个接口
    interface Ianimalable
        {
          //接口里面不能有字段,可以有方法,有自然属性
           void say();
           string name
           {
               get;
               set;
           }
        }
    
    
    interface Ipersonable
        {
            void hisay();
        }
    
    //一个接口可以同时继承多个接口    
    interface Istudentable : Ianimalable,Ipersonable
        {
            void HIsay();
        }
    
    
    //在命名空间下面定义一个鹦鹉类,继承与接口
     class Parrot:Ianimalable
        {
            private string _name;
            public string name
            {
                get
                {
                    return _name;
                }
                set
                {
                    _name = value;
                }
            }
    //下面是显式接口的调用方法,用下面的格式写方法体
    // 返回值 接口名.函数名(){方法体};
            void Ianimalable.say ()
            {
                Console.WriteLine("我是一个鹦鹉,我叫{0}", name);
            }
        }
    
    //在命名空间下面定义一个狗类,继承与接口
     class Dog:Ianimalable
        {
            private string _name;
            public string name
            {
                get
                {
                    return _name;
                }
                set
                {
                    _name = value;
                }
            }
            public void say()
            {
                Console.WriteLine("我是一个狗,我叫{0}", _name);
            }

    定义一个接口变量,比如说 Ianimalable animal = new Parrot();     animal = new Dog();        

    这里可以看到,接口就像一个特殊的类, 接口不是被实例化,但是可以通过子类间接实例化                

    2.1 当继承接口的子类中的方法名和接口中的方法名一样的话,这就需要用到显示接口,这个在代码中可以看到具体的使用方法

    2.2 一个接口可以被多个接口或者多个类继承, 一个接口可以同时继承多个接口继承, 但是一个类不能同时继承多个类,  一个接口可以同时继承类和接口, 但是接口一定要在后面

    2.3 animal先装的是鹦鹉类,animal后来装的是狗类,装那个类,就表现出那个类的特征

    2.4 这样接口就表现了不同的形态,可以是狗类,可以是鹦鹉类等等, 就实现了多态

    Csharp多态的实现概述

  • 相关阅读:
    Html禁止粘贴 复制 剪切
    表单标签
    自构BeanHandler(用BeansUtils)
    spring配置中引入properties
    How Subcontracting Cockpit ME2ON creates SD delivery?
    cascadia code一款很好看的微软字体
    How condition value calculated in sap
    Code in SAP query
    SO Pricing not updated for partial billing items
    Javascript learning
  • 原文地址:https://www.cnblogs.com/ZhiXing-Blogs/p/4958240.html
Copyright © 2011-2022 走看看