欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

接口实现多态

程序员文章站 2022-06-13 21:14:23
...

创建一个接口. 新建类->新建接口 . 接口都是I开头, 且默认public 不用写public

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterFace
{
    interface ImultiPrinter
    {
        void Print(string content);
        void Copy(string content);
        bool Fax(string content);
    }
}

用快捷键快速建立2个类, 并继承于接口, 接口可以使用接口实现快捷键

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterFace
{
    class HPmultiPrinter : ImultiPrinter
    {
        public void Copy(string content)
        {
            //编写打印程序
            Console.WriteLine("欢迎使用惠普打印机");
            Console.WriteLine("HP打印机正在复印..." + content);
        }

        public bool Fax(string content)
        {
            Console.WriteLine("欢迎使用惠普打印机");
            Console.WriteLine("HP打印机正在传真..." + content);
            return true;
        }

        public void Print(string content)
        {
            Console.WriteLine("欢迎使用惠普打印机");
            Console.WriteLine("HP打印机正在打印..." + content);
        }
        //void ImultiPrinter.Copy(string content)
        //{
        //    throw new NotImplementedException();
        //}

        //bool ImultiPrinter.Fax(string content)
        //{
        //    throw new NotImplementedException();
        //}

        //void ImultiPrinter.Print(string content)
        //{
        //    throw new NotImplementedException();
        //}
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterFace
{
    public class CanonPrinter : ImultiPrinter
    {
        public void Copy(string content)
        {
            //编写打印程序
            Console.WriteLine("欢迎使用佳能打印机");
            Console.WriteLine("佳能打印机正在复印..." + content);
        }

        public bool Fax(string content)
        {
            Console.WriteLine("欢迎使用佳能打印机");
            Console.WriteLine("佳能打印机正在传真..." + content);
            return true;
        }

        public void Print(string content)
        {
            Console.WriteLine("欢迎使用佳能打印机");
            Console.WriteLine("佳能打印机正在打印..." + content);
        }
    }
}

在主程序中实现 .同理 Person per = new Student(); 子类可以继承父类, 父类在左边.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterFace
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建对象(通过接口)
            //ImultiPrinter objprint = new HPmultiPrinter();
            //objprint.Print("学生名单");
            //objprint.Copy("学生姓名");
            //objprint.Fax("学生班级");
            //Console.ReadKey();
            欢迎使用惠普打印机
            HP打印机正在打印...学生名单
            欢迎使用惠普打印机
            HP打印机正在复印...学生姓名
            欢迎使用惠普打印机
            HP打印机正在传真...学生班级

            //Person p = new Student_1();
            ImultiPrinter objprinter1 = new HPmultiPrinter();
            ImultiPrinter objprinter2 = new CanonPrinter();
            Print(objprinter1);
            Print(objprinter2);
            Console.ReadKey();

            //结果:
            //欢迎使用惠普打印机
            //HP打印机正在打印...学生名单
            //欢迎使用惠普打印机
            //HP打印机正在复印...学生姓名
            //欢迎使用惠普打印机
            //HP打印机正在传真...学生班级
            //欢迎使用佳能打印机
            //佳能打印机正在打印...学生名单
            //欢迎使用佳能打印机
            //佳能打印机正在复印...学生姓名
            //欢迎使用佳能打印机
            //佳能打印机正在传真...学生班级



        }

        static void Print(ImultiPrinter objprinter)
        {
            objprinter.Print("学生名单");
            objprinter.Copy("学生姓名");
            objprinter.Fax("学生班级");
        }
    }
}