频道栏目
首页 > 资讯 > 其他综合 > 正文

密闭类、密闭方法 - pu409 - 博客园

19-05-24        来源:[db:作者]  
收藏   我要投稿

密闭类、密闭方法

sealed public void Func()密闭方法

sealed public class C{} 密闭类

密闭的作用: 实现类不可以通过继承来修改,不可以派生子类;实现 方法不可以再被override。

要实现基类的方法不被重写,就不要用virtual声明该方法。要实现派生类中用override声明的方法不被重写,则需要前加sealed声明。

 abstract public class Pet//当包含抽象方法时,必须用abstract声明
    {
        protected string Name;//protected 保护级别,派生类可访问
        public Pet(string name)//基类的构造函数
        {
            Name = name;
        }
        public void PrintName()
        {
            Console.WriteLine("Print" + Name);
        }

        //virtual public void Speak()   //虚方法//如果该方法够抽象,抽象到其实体是没有机会被用到并且都在该类的派生类中有各种不同实现的情况下,就可以改成抽象方法
        //{
        //    Console.WriteLine("I'm "+Name);  
        //}
        abstract public void Speak();//抽象方法,其所在类也得换为abstract声明。在其派生类中必须通过override做具体实现
    }
    public class Dog : Pet
    {
        public Dog(string name) : base(name)//构造函数//用关键字base调用了基类的构造函数
        {

        }
        new public void PrintName()
        {
            Console.WriteLine("子打印" + base.Name);
        }
        //override public void Speak()//重写基类Pet的虚方法
        sealed override public void Speak()//声明为密闭方法加了sealed-------------看这里看这里
        {
            Console.WriteLine("子说" + Name);
        }
    }
    public class Corky:Dog
    {
        public Corky(string name) : base(name)//构造函数//此处base指的是Dog类
        {
        }
        override public void Speak()//这里报错//错误    CS0239    “Corky.Speak()”: 继承成员“Dog.Speak()”是密封的,无法进行重写-----看这里看这里        

        { }
     }

相关TAG标签
上一篇:网上网赌被黑财务清算不给出款怎么办?
下一篇:(5)ASP.NET Core 中的静态文件 - 暗断肠 - 博客园
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站