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

  • 相关阅读:
    dede文章插入分页符不起作用,编辑器中出现分页符,导致文章显示不全
    dedecms 图集标签{dede:productimagelist} {dede:field name='imgurls'}&nbs
    dede织梦怎么修改description的字数
    dede 内容页文章标题显示不全的更改方法
    amazon company
    rapleaf
    nope
    数据库事务隔离级别与锁
    nosql=not only sql
    Lustre是开放源代码的集群文件系统
  • 原文地址:https://www.cnblogs.com/zzunstu/p/9116565.html
Copyright © 2011-2022 走看看