码迷,mamicode.com
首页 > 其他好文 > 详细

虚方法和覆写方法

时间:2014-11-28 20:04:03      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   sp   on   div   


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

namespace nange_1
{
    class A
    {
        public void f()
        { Console.WriteLine("在基类中"); }
    }
    class B : A
    {
        public void f()
        { Console.WriteLine("在子类中"); }
    }


    class Program
    {
        static void Main(string[] args)
        {
            B objB = new B();
            A objA = objB;//基类指向派生类对象
            objA.f();    //但是仍然调用的是基类的方法!
            Console.ReadLine();
        }

    }
}
输出结果如图所示:
bubuko.com,布布扣

 


using
System; using System.Collections.Generic; using System.Linq; using System.Text; namespace nange_1 { class A { virtual public void f() {Console.WriteLine("在基类中"); } } class B:A { override public void f() { Console.WriteLine("在子类中"); } } class Program { static void Main(string[] args) { B objB=new B(); A objA = new A(); objA.f(); //基类调用自己的方法 objA = (A)objB;//加不加(A)都一样的!基类引用指向派生类对象 objA.f();//此时调用的派生类的方法!和上面的完全不一样的! objB.f(); Console.ReadLine(); } } }
bubuko.com,布布扣
/*关于virtual和override修饰符的重要信息如下: 覆写和被覆写的方法必须要有相同的可访问性! 不能复写static方法和非虚方法。 方法,属性,索引器,以及另一种成员类型事件(都可以被声明为virtual和override)*/
总结:这个和c++里面的虚函数效果是一样的!也就是所谓的多态性!

 

虚方法和覆写方法

标签:style   blog   http   io   ar   color   sp   on   div   

原文地址:http://www.cnblogs.com/leijiangtao/p/4129199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!