Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > sealed关键字的应用
【标  题】:sealed关键字的应用
【关键字】:sealed
【来  源】:http://blog.csdn.net/lyz84331/archive/2006/10/22/1344776.aspx

sealed关键字的应用

Your Ad Here

sealed有点类似JAVA中的final关键字

被sealed修饰的类不能作为父类被继承 

namespace sealedTest
{
    
public sealed class Base
    {
    }
    
public class Child:Base        //wrong
    {}
}

 

被sealed修饰的方法不能被重写

没有sealed关键字的情况

 

using System;

namespace sealedTest
{
    
//父类
    public class Base
    {
        
public virtual void display()
        {
            Console.WriteLine(
"1111111");
        }
    }
    
//子类
    public class Child:Base        
    {
        
public override void display()    //没有sealed关键字的情况
        {
            Console.WriteLine(
"2222222");
        }
    }
    
//孙类
    public class Grandchild:Child
    {
        
public override void display()
        {
            Console.WriteLine(
"3333333");    
        }
    }
    
//测试类
    class Test
    {
        [STAThread]
        
static void Main(string[] args)
        {
            Base b
=new Base();
            b.display();
            b
=new Child();
            b.display();
            b
=new Grandchild();
            b.display();
        }
    }
}

 

有sealed关键字的情况

 

using System;

namespace sealedTest
{
    
//父类
    public class Base
    {
        
public virtual void display()
        {
            Console.WriteLine(
"1111111");
        }
    }
    
//子类
    public class Child:Base        
    {
        
public sealed override void display()    //有sealed关键字的情况
        {
            Console.WriteLine(
"2222222");
        }
    }
    
//孙类
    public class Grandchild:Child
    {
        
//“sealedTest.Grandchild.display()”:无法重写继承的成员“sealedTest.Child.display()”,因为它已被密封
        public override void display()
        {
            Console.WriteLine(
"3333333");    
        }
    }
    
//测试类
    class Test
    {
        [STAThread]
        
static void Main(string[] args)
        {
            Base b
=new Base();
            b.display();
            b
=new Child();
            b.display();
            b
=new Grandchild();
            b.display();
        }
    }
}
一个关于密码验证与修改的类:【上一篇】
静态构造函数与非静态构造函数的区别:【下一篇】
【相关文章】
  • 17.7.4 Virtual, sealed, override, and abstrac
  • 17.5.5 Sealed methods
  • 17.6.3 Virtual, sealed, override, and abstrac
  • 【随机文章】
  • Windows XP 中如何利用设备管理器进行设备管理
  • C语言库函数(B类字母)
  • 请教网络高手 非常值得讨论的 问题
  • 撕纸边缘效果制作方法详解<2>
  • 关于从CString转换成const char*
  • FreeBSD连载(93):反向代理负载均衡
  • 一个免费的邮件列表源程序(三)
  • 注册表中的禁用项
  • Unix 备份与压缩
  • 软链接和硬链接
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.