.NET之面向对象多态详解。

Parent par = new Child();//Child是Parent的子类
            par.Function3();//Function3是在Parent里是虚方法,在Child里override,这里调用的实际上是Child里的Function3

            //Child ch = new Parent();这样实例化,报错

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

namespace ConsoleApplication1
{
    class Parent
    {
        public Parent()
        {
            Console.WriteLine("Parent");
        }
        public void Function1()
        {   
           
            Console.WriteLine("这是父类的方法");
        }

        public virtual void Function2()
        {
            Console.WriteLine("这是第二个父类的方法");
        }


        public virtual void Function3()
        {
            Console.WriteLine("这是父类的虚方法");
        }

        public void Function4()
        {
            Console.WriteLine("Parent的Function4");
        }



    }
}

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

namespace ConsoleApplication1
{
    class Child:Parent
    {
        public Child():base()
        {
            Console.WriteLine("Child");
        }
        public new  void Function2()//感觉加不加new都一样
        {
            base.Function2();
            Console.WriteLine("这是重写父类的方法");
        }

        public override void Function3()//感觉加不加overide都一样
        {
            Console.WriteLine("这是重写父类的虚方法");
        }

       


    }
}

猜你喜欢

转载自blog.csdn.net/hhw199112/article/details/80729618
今日推荐