zoukankan      html  css  js  c++  java
  • C#视频

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace ConsoleApplication1
    {
        interface IDrivingLicenseB
        {
            void GetLicense();
        }
    
        interface IDrivingLicenseA : IDrivingLicenseB
        {
            new void GetLicense();
        }
    
        class Teacher : IDrivingLicenseA
        {
            public void GetLicense()
            {
                Console.WriteLine("Teacher got license A.");
            }
        }
    
        class Student : IDrivingLicenseB
        {
            public void GetLicense()
            {
                Console.WriteLine("Student got license B.");
            }
        }
    
        class Program
        {
            static void DriveCar(string name, IDrivingLicenseB o)
            {
                IDrivingLicenseB dl = o as IDrivingLicenseB;
                if (dl != null)
                {
                    Console.WriteLine("drive car.");
                }
                else
                {
                    Console.WriteLine("cannot drive car.");
                }
            }
    
            static void DriveBus(string name, IDrivingLicenseB o)
            {
                IDrivingLicenseA dl = o as IDrivingLicenseA;
                if (dl != null)
                {
                    Console.WriteLine("drive bus.");
                }
                else
                {
                    Console.WriteLine("cannot drive bus.");
                }
            }
    
            static void Main(string[] args)
            {
                Teacher t = new Teacher();
                DriveCar("Teacher", t);
                DriveBus("Teacher", t);
    
                Student s = new Student();
                DriveCar("Student", s);
                DriveBus("Student", s);
    
                Console.ReadKey();
            }
        }
    }
    View Code

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace ConsoleApplication1
    {
        interface IDrivingLicenseB
        {
            void GetLicense();
        }
    
        interface IDrivingLicenseA : IDrivingLicenseB
        {
            new void GetLicense();
        }
    
        class Teacher : IDrivingLicenseA
        {
            void IDrivingLicenseA.GetLicense()
            {
                Console.WriteLine("Teacher got license A.");
            }
    
            void IDrivingLicenseB.GetLicense()
            {
                Console.WriteLine("Teacher got license B.");
            }
    
            public void GetLicense()
            {
                Console.WriteLine("VVVB.");
            }
        }
    
        class Student : IDrivingLicenseB
        {
            public void GetLicense()
            {
                Console.WriteLine("Student got license B.");
            }
        }
    
        class Program
        {
            static void DriveCar(string name, IDrivingLicenseB o)
            {
                IDrivingLicenseB dl = o as IDrivingLicenseB;
                if (dl != null)
                {
                    Console.WriteLine("drive car.");
                }
                else
                {
                    Console.WriteLine("cannot drive car.");
                }
            }
    
            static void DriveBus(string name, IDrivingLicenseB o)
            {
                IDrivingLicenseA dl = o as IDrivingLicenseA;
                if (dl != null)
                {
                    Console.WriteLine("drive bus.");
                }
                else
                {
                    Console.WriteLine("cannot drive bus.");
                }
            }
    
            static void Main(string[] args)
            {
                Teacher t = new Teacher();
                ((IDrivingLicenseA)t).GetLicense();
                ((IDrivingLicenseB)t).GetLicense();
                t.GetLicense();
    
                //DriveCar("Teacher", t);
                //DriveBus("Teacher", t);
    
                //Student s = new Student();
                //DriveCar("Student", s);
                //DriveBus("Student", s);
    
                Console.ReadKey();
            }
        }
    }
    View Code

    完全限定名不能用public修饰符修饰。去掉public,即为private。

     

     接口的多继承:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace ConsoleApplication1
    {
        interface IA
        {
            void F();
        }
    
        interface IB : IA
        {
            new void F();
        }
    
        interface IC : IA
        {
            void G();
        }
    
        interface IBC : IB, IC
        {
    
        }
    
        class D: IBC
        {
            public void F()
            {
                Console.WriteLine("IB.F()");
            }
    
            public void G()
            {
                Console.WriteLine("IC.G()");
            }
        }
        
        class Program
        {
           
            static void Main(string[] args)
            {
                D d = new D();
                ((IBC)d).F();
                ((IB)d).F();
                ((IC)d).F();
                ((IA)d).F();
    
                Console.ReadKey();
            }
        }
    }
    View Code

    Note:
    调用IC的F方法,IC的F方法继承自IA接口。接口多重继承原则:直观隐藏规则。如果成员在任何一个路径中被隐藏,则他在任何一个路径中也被隐藏掉。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace ConsoleApplication1
    {
        interface IA
        {
            void F();
        }
    
        class B: IA
        {
            void IA.F()
            {
                Console.WriteLine("B.F");
            }
        }
    
        class C : B, IA
        {
            public void F()
            {
                Console.WriteLine("C.F");
            }
        }
        
        class Program
        {
           
            static void Main(string[] args)
            {
                C c = new C();
    
                ((IA)c).F();
                //((B)c).F();
                
                Console.ReadKey();
            }
        }
    }
    View Code

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace ConsoleApplication1
    {
        interface IA
        {
            void F();
        }
    
        class B: IA
        {
            void IA.F()
            {
                Console.WriteLine("B.F");
            }
        }
    
        class C : B, IA
        {
            public void F()
            {
                Console.WriteLine("C.F");
            }
        }
        
        class Program
        {
           
            static void Main(string[] args)
            {
                C c = new C();
    
                ((IA)c).F();
    
                B b = c;
                ((IA)b).F();
                
                Console.ReadKey();
            }
        }
    }
    View Code

  • 相关阅读:
    java socket解析和发送二进制报文工具(附java和C++转化问题)
    hibernate缓存机制(二级缓存)
    Spring MVC中前后台数据传输小结
    NUC972 MDK NON-OS
    代码是如何控制硬件的?
    C语言位运算+实例讲解(转)
    C语言程序真正的启动函数
    51单片机的时钟及总线时序和总线扩展
    如何通过Keil将程序正确的下载进flash中
    说说M451例程讲解之串口
  • 原文地址:https://www.cnblogs.com/zzunstu/p/9116565.html
Copyright © 2011-2022 走看看