首页 > 其他 > 详细

C# 多态性

时间:2014-03-22 06:12:59      阅读:425      评论:0      收藏:0      [点我收藏+]
(1)定义:
多态是针对派生类和基类的具有相同签名的方法而言的。基类定义并且实现了声明为 virtual 或者abstract的方法,然后派生类通过关键词 override来重写他们
(2)传递性之 virtual:
A是基类,B继承A,C继承B,如果A中有声明为virtual的属性或者方法,那么不管B中是否针对该属性,方法声明为override,C都可以overrideA中的这一virtual属性或者方法
传递性之 interface
namespace ConsoleApplication6Override
{
    interface  Interface1
    {
        void func1(int x);
        void func2(string str);
    }


    class Class1:Interface1
    {
        public void func1(int x)
        {
            Console.WriteLine("this is in Class1 inherits Interface1");
        }


        public void func2(string str)
        {
            Console.WriteLine("this is in Class1 inherits Interface1");
        }
    }


    //error ,继承成员“ConsoleApplication6Override.Class1.func1(int)”未标记为 virtual、abstract 或 override,无法进行重写
    //error,继承成员“ConsoleApplication6Override.Class1.func2(string)”未标记为 virtual、abstract 或 override,无法进行重写
    class Class2:Class1
    {
        public override void func1(int x)
        {
        }
        public override void func2(string str)
        { 
        }
    }
}

(3)总结:
接口声明的方法不具有传递性,virtual声明的方法具有传递性。能够override的只能是标记为virtual,abstract,override的。

C# 多态性,布布扣,bubuko.com

C# 多态性

原文:http://blog.csdn.net/ddupd/article/details/21718391

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!