zoukankan      html  css  js  c++  java
  • An interesting piece of code

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

    namespace ConsoleApplication1

    {
    class A
    {
    public virtual void Movie()
    {
    Console.WriteLine("A");
    }
    }
    class B : A
    {
    public override void Movie()
    {
    Console.WriteLine("B");
    }
    }
    class C : B
    {
    public new virtual void Movie()
    {
    Console.WriteLine("C");

    }

    }
    class D : C
    {
    public override void Movie()
    {
    Console.WriteLine("D");
    }

    }
    class Program
    {
    static void Main(string[] args)
    {
    A objA = new D();
    A objB = new B();
    C objC = new D();
    A objD = new A();
    objA.Movie();
    objB.Movie();
    objC.Movie();
    objD.Movie();
    Console.ReadLine();
    }
    }
    }

    the reason is like:

    B overrides A ,it's not virtual.

    so the inherited one stops when it can't go further or it reach to itself. 

  • 相关阅读:
    十三周上机练习
    上机练习
    第十一周作业
    第十一周上机作业
    第十周上机作业
    第九周作业
    第八次作业
    第八次作业
    第六次作业
    第五次作业
  • 原文地址:https://www.cnblogs.com/itria/p/4378935.html
Copyright © 2011-2022 走看看