• 接口


    是一种引用类型 

    接口里定义一组函数成员,单是自己不实现它们,而让类来实现(接口的实现与继承相似)。(感觉像只带着抽象方法(或其他抽象东西)的抽象类)

    定义的成员默认是public ,但是不能把public 写在上面

    一个类同时可以继承自一个基类+实现多个接口

    class Program
        {
            static void Main(string[] args)
            {
              
                Cat C = new Cat("CC1");//由于Cat实现了接口IPlayWoolBall和IEatFish,
    //所以这两个接口里的方法都在Cat中得到了实现,
    //可以通过实例C调用接口里定义方法同名的方法 C.PlayWoolBall(); C.EatFish(); IPlayWoolBall playBall
    = (IPlayWoolBall)C; //声明接口的实例playBall,是通过类的实例C来实现的 playBall.PlayWoolBall();//接口的实例就只能获取到接口里定义过的方法同名的方法 IEatFish eatFish = (IEatFish)C; eatFish.EatFish(); } } abstract public class Pet//当包含抽象方法时,必须用abstract声明 { protected string Name;//protected 保护级别,派生类可访问 public Pet(string name)//基类的构造函数 { Name = name; } abstract public void Speak(); } interface IPlayWoolBall //声明接口 { void PlayWoolBall();//定义了一个函数 PalyWoolBall() } interface IEatFish { void EatFish(); } public class Cat : Pet,IPlayWoolBall,IEatFish//一个类可以实现多个接口,基类和接口都存在的情况下,基类要写最前面 { public Cat(string name):base(name)//构造函数//用关键字base调用了基类的构造函数 { } override public void Speak()//override基类Pet的抽象方法 { Console.WriteLine("子说" + Name); } public void PlayWoolBall() { Console.WriteLine(Name+" play wool ball"); } public void EatFish() { Console.WriteLine(Name+" eat fish"); } }
  • 相关阅读:
    AngularJS学习之旅
    webbug3.0菜鸟笔记1
    CTF练习(1)这是一张单纯的图片?
    三步删除U深度,老毛桃,大白菜捆绑软件!!
    flex弹性布局学习总结
    C# 播放音乐
    获取文件夹中的所有文件名
    C# 利用委托和事件 传入一个参数进行进行计算并返回结果
    C# 自定义颜色
    检测键盘是否按下指定按键
  • 原文地址:https://www.cnblogs.com/cicily/p/10917289.html
Copyright © 2020-2023  润新知