zoukankan      html  css  js  c++  java
  • 黑马程序员--多态练习(手机工厂)

    ---------------------- ASP.Net+Android+IOS开发 .Net培训期待与您交流! ----------------------

     interface IAppable
        {
            void applicatiable();
        }
    interface Icall
        {
           void call();
        }
      abstract class Phone:Icall
        {
             public abstract void call();     
        }
     abstract class Nokia:Phone
        {
            public string Mark = "诺基亚";
            public abstract override void call();
        }
     class Nokia型号8987:Nokia
        {
            public override void call()
            {
                Console.Write("我是功能机,我可以打电话,我的价格很便宜哟几百块钱哟.");
            }
        }
     class Nokia型号appable899:Nokia,IAppable
        {
    
            public override void call()
            {
                Console.Write("我可以打电话.我价格几千不等.");
            }
    
            public void applicatiable()
            {
                Console.WriteLine("我可以装软件,我很贵,我是智能机.");
            }
        }
    class Program
        {
            static void Main(string[] args)
            {
                //Nokia手机公司,批量生产Nokia
                Nokia[] ns ={
                               new Nokia型号8987(),
                               new Nokia型号appable899()
                           };
                for (int i = 0; i < ns.Length;i++ )
                {
                    ns[i].call();
                    Console.WriteLine("品牌是"+ns[i].Mark+"
    ");
                }
                //一个生产智能机的大公司
                IAppable[] IAphones ={
                                      new Nokia型号appable899(),
                                      new Nokia型号appable899()
                                    };
                for (int i = 0; i < IAphones.Length;i++ )
                {
                    IAphones[i].applicatiable();
                }
                Console.ReadKey();
            }
        }

     ■接口的实现类似于继承

      ♢补充方法体

    ■接口是"多继承"

      ♢由于多继承,无法保证重名的问题

      ♢可以显式实现接口成员

      ♢<接口名>.方法名(){/*方法体*/}

      ♢显式实现接口成员必须由接口对象来调用

    interface I1
        {
            void Func();
        }
        interface I2
        {
            void Func();
        }
        class Myclass:I1,I2
        {
            void I1.Func()//显式实现接口成员
            {
                Console.WriteLine("我是I1");
            }
    
            void I2.Func()//显式实现接口成员
            {
                Console.WriteLine("我是I2");
            }
        }
        class Program
        {
            static void Main(string[] args)
            {//显式实现的接口的方法,只能使用接口对象来调用
                Myclass c = new Myclass();//访问不到成员Func(),无论是I1或I2的Func()
                ((I1)c).Func();
                ((I2)c).Func();
                Console.ReadKey();
            }
        }

     ■自动实现属性和接口属性

    interface IProperity
        {
            //接口的属性,只写一个"get;";或"set;";或都写;表示指定的属性类型
            int num1
            {
                set;
                get;
            }
            int num2
            {
                set;
            }
            int num3
            {
                get;
            }
        }
            class Myclass1: IProperity
            {
                public int num1
                {
                    get;  
                    set;
                }
                private int num2;
                public int Num2
                {
                    set { throw new NotImplementedException(); }
                }
                private int num3;
                public int Num3
                {
                    get { throw new NotImplementedException(); }
                }
            }
            class Myclass2
            {
                //自动实现属性
                int num//无后备字段
                {
                    set;//不实现方法体
                    get;//不实现方法体
                }
                //自动实现属性,必须同时具备set;和get;
            }
            class Program
            {
                static void Main(string[] args)
                {
                }
            }
  • 相关阅读:
    SGU 176.Flow construction (有上下界的最大流)
    POJ 2391.Ombrophobic Bovines (最大流)
    poj 1087.A Plug for UNIX (最大流)
    poj 1273.PIG (最大流)
    POJ 2112.Optimal Milking (最大流)
    SGU 196.Matrix Multiplication
    SGU 195. New Year Bonus Grant
    关于multicycle path
    ppt做gif动图
    codeforces 598A Tricky Sum
  • 原文地址:https://www.cnblogs.com/tobecabbage/p/3468115.html
Copyright © 2011-2022 走看看