using System;
namespace P6_6
{
    class classX
    {
        protected virtual void F() { Console.WriteLine("classX.F"); }
        protected virtual void F2() { Console.WriteLine("classX.F2"); }
    }
    class classY : classX
    {
        sealed protected override void F() { Console.WriteLine("classY.F"); }
        protected override void F2() { Console.WriteLine("classY.F2"); }
       public void show()
        {
        //    F();
        //    F2();
        }
    }
    class classZ : classY
    {
        // ͼFֱ CS0239ΪFѾB˷ܷ
        // Fڴǲʵֵ
//protected override void F() { Console.WriteLine("classC.F"); }
        // F2
        protected override void F2() { Console.WriteLine("classZ.F2"); }
        public new void  show(){
            base.F();   		//ûBF
            base.F2();  		//ûBF2
            F(); 
            F2();
        }
    }
    class Program
    {
        static void Main()
        {
            classY Y1 = new classY();
            classZ Z1 = new classZ();
            Y1.show();
            Z1.show();
            Console.ReadLine();
        } 
     }
}

