zoukankan      html  css  js  c++  java
  • c# 第37节 接口的实现与继承

    本节内容:

    1:接口继承注意

    2:开发封闭原则:

    3:实例解释接口的作用

    1:接口继承注意

    接口的继承:
    1:类继承具有单根性,接口可多重继承; 
    2:接口继承多个接口的时候,派生接口名与父接口用冒号隔开,多个父接口之间用逗号隔开。
    3:派生接口想要重写继承接口的方法或者属性时,要用关键字new ; 

    2:开发封闭原则:

    开发封闭原则:
    定义:软件实体应该可以进行扩展,但是不可以修改
    
    特性:
    1:对扩展是开放的
    2:对修改是封闭的,开放即可以操作,关闭即不可以操作 

    3:实例接口继承

    类的实现

    ###########老鹰类################
    class Eagle : Bird, IFlyable
    {
        public void fly()
        {
            Console.WriteLine("我是老鹰我可以飞");
    
        }
        public override void eat()
        {
            Console.WriteLine("我是老鹰我吃小鸡");
        }
    }
    
    ############鸵鸟类###############
    class Ostrich:Bird
    
    {
        public override void eat() {
            Console.WriteLine("我是鸵鸟我吃青草");
        }
    
    }
    
    #############麻雀类###############
    
    class Sparrow : Bird, IFlyable
    {
        public void fly()
        {
            Console.WriteLine("我是麻雀我可以飞");
        }
        public override void eat()
        {
            Console.WriteLine("我是麻雀我吃粮食");
        }
    }
    
    ############鸟类##################
    abstract class Bird
    {
        
        public abstract void eat();
    }
    
    
    ##########主类#####################
    class Program
    {
        static void Main(string[] args)
        {
            Bird[] obj = {new Eagle(),new Sparrow(),new Ostrich()};
            foreach (Bird item in obj){item.eat();}
            IFlyable[] obj2 = {new Eagle(),new Sparrow()};
    
            foreach (IFlyable item in obj2) { item.fly(); }
            Console.ReadKey();
        }
    }
    View Code

    接口IFlyable:

     interface IFlyable
        {   //定义接口函数 //注意函数不能有结构体;不能有修饰符
            void fly();
        }
    

    输出:

  • 相关阅读:
    LeetCode偶尔一题 —— 617. 合并二叉树
    《剑指offer》 —— 链表中倒数第k个节点
    《剑指offer》 —— 青蛙跳台阶问题
    《剑指offer》—— 二维数组中的查找
    《剑指offer》—— 替换空格
    《剑指offer》—— 合并两个排序的链表
    《剑指offer》—— 礼物的最大价值
    生成Nuget 源代码包来重用你的Asp.net MVC代码
    Pro ASP.Net Core MVC 6th 第四章
    Pro ASP.NET Core MVC 6th 第三章
  • 原文地址:https://www.cnblogs.com/hero799/p/8670893.html
Copyright © 2011-2022 走看看