首页 > 其他 > 详细

密闭类、密闭方法

时间:2019-05-24 11:15:01      阅读:89      评论:0      收藏:0      [点我收藏+]

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()”是密封的,无法进行重写-----看这里看这里        

        { }
     }

 

密闭类、密闭方法

原文:https://www.cnblogs.com/cicily/p/10916543.html

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