首页 > 其他 > 详细

继承和多态

时间:2015-04-06 20:06:23      阅读:125      评论:0      收藏:0      [点我收藏+]
1.Abstract does force all the derived classes to implement the method, but nothing forces the derived derived classes to implement its own DrawWindow() method.
//sealed不允许被派生
技术分享
abstract class Control
{
    public virtual void A()
    {
        Console.WriteLine("A");
    }

}
技术分享

定义抽象类之后Control类并不能被使用

2.重写基类函数的两种方法

去掉abstract

Use new  to indicate that it is not an override of the base method in Control class.

技术分享
class ListBox : Control
{
    public new virtual void A()
    {
        Console.WriteLine("B");
    }
}

class MainClass
{
    static void Main(string[] args)
    {
        Control console;
        console = new ListBox();
        console.A();
    }
}
技术分享

输出A

Use override to indicate that it does want to override of the base method in Control class.
技术分享
class ListBox : Control
{
    public override void A()
    {
        Console.WriteLine("B");
    }
}

class MainClass
{
    static void Main(string[] args)
    {
        Control console;
        console = new ListBox();
        console.A();
    }
}
技术分享

输出B

public The type or member can be accessed by any other code in the same assembly or another assembly that references it.
private The type or member can only be accessed by code in the same class or struct.
protected The type or member can only be accessed by code in the same class or struct, or in a derived class.

我真是认真的好孩子

继承和多态

原文:http://www.cnblogs.com/czyhhxx/p/4396475.html

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