• 0106-接口


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _07接口
    {  
        /*接口代表这具有某种能力、只声明不实现、且不用修饰符默认public
         *不可以包含字段(但是可以包含属性)和构造函数
         *接口只能继承自接口,类和抽象类都可以继承自接口
        */
        class Program
        {
            static void Main(string[] args)
            {
                IDance[] dancer = {new Student("街舞"), new Teacher("交谊舞")};
                foreach (var item in dancer)
                {
                    item.Dance(); //调用接口对象的Dance方法
                    if (item is Teacher)
                    {  //如果是教师类,则同时调用教师类本身的Dance方法
                        (item as Teacher).Dance();  //输出:老师本身会跳广场舞
                    }
                }
                Console.ReadKey();
            }
        }
    
        interface IDance
        {
            string Dif { get; set; }
            void Dance();
        }
        class Person
        {
            
        }
    
        class Student : Person, IDance
        {
            public string Dif{get; set ; }
            public void Dance()
            {
                Console.WriteLine("学生会跳{0}",Dif);
            }
    
            public Student(string dif)
            {
                this.Dif = dif;
            }
        }
    
        class Teacher : Person, IDance
        {
            public string Dif { get; set; }
    
            public void Dance()
            {
                Console.WriteLine("老师本身会跳广场舞");
            }
    
            void IDance.Dance() //当类和接口有同名函数时,可以省略public关键字且函数名前增加接口类名称,显示的实现接口函数
            {
                Console.WriteLine("老师会跳{0}", Dif);
            }
    
            public Teacher(string dif)
            {
                this.Dif = dif;
            }
        }
    }
    凡哥,别他妈吹牛逼了
  • 相关阅读:
    监控页面所有checkbox改变状态的简单方法
    poorman’sgraphicalboot
    Linux 高精確的時序(sleep, usleep,nanosleep)
    【转】跟我一起写udev规则(译)
    什么情况下可以不创建QCoreApplication
    Linux双网卡bonding举例
    many former solutions has been "deleted"
    文件浏览器
    配置站点集的配额和锁
    HyperV的三种网卡
  • 原文地址:https://www.cnblogs.com/sdlz/p/14694877.html
Copyright © 2020-2023  润新知