接口

作者: 我家菇凉 | 来源:发表于2021-04-09 17:46 被阅读0次

    假设我们公司有两种程序员:VB程序员指的是用VB写程序的程序员,用VBpro这个类表示;C程序员指的是用C写程序的程序员,用Cpro这个类来表示。每个类都有一个WriteCode()方法。

    现在公司来了一个项目,要求派某个程序员写一个程序。

    */

    namespace ConsoleApplication2

    {

        //VB程序员

        class VBpro

        {

            public void WriteCode()

            {

                Console.WriteLine("我用vb写代码");

            }

        }

        //C程序员

        class Cpro

        {

            public void WriteCode()

            {

                Console.WriteLine("我用c写代码");

            }

        }

        //编写项目类

        class Pro

        {

            public void WriteProgram(VBpro program)

            {

                program.WriteCode();

            }

            public void WriteProgram(Cpro program)

            {

                program.WriteCode();

            }

        }

        //测试

        class Program

        {

            static void Main(string[] args)

            {

                Pro p = new Pro();

                VBpro p1 = new VBpro();

                p.WriteProgram(p1);

                Cpro p2 = new Cpro();

                p.WriteProgram(p2);

                Console.ReadKey();

            }

        }

    }

    /**

    但是如果这时公司又来了一个C#程序员,我们怎么改这段程序,使它能够实现用C#写程序的功能呢?我们需要增加一个新类C#程序员类,同时在此项目类中要再次

    重载WritePrograme(C#pro programer)方法。这下麻烦多了。如果还有C++程序员,JAVA程序员呢。但是如果改用接口,就完全不一样了

    */

    namespace ConsoleApplication2

    {

        //申明一个程序员接口

        public interface IProgramer

        {

            void WriteCode();

        }

        //vb程序员

        class VBpro : IProgramer

        {

            public void WriteCode()

            {

                Console.WriteLine("我用vb写代码");

            }

        }

        //c程序员

        class Cpro : IProgramer

        {

            public void WriteCode()

            {

                Console.WriteLine("我用c写代码");

            }

        }

        //编写项目类

        class Pro

        {

            public void WriteProgram(IProgramer iprogramer)

            {

                iprogramer.WriteCode();

            }

        }

        //测试

        class Program

        {

            static void Main(string[] args)

            {

                Pro p = new Pro();

                VBpro p1 = new VBpro();

                p.WriteProgram(p1);

                Cpro p2 = new Cpro();

                p.WriteProgram(p2);

                Console.ReadKey();

            }

        }

    }

    相关文章

      网友评论

          本文标题:接口

          本文链接:https://www.haomeiwen.com/subject/oykwkltx.html