zoukankan      html  css  js  c++  java
  • 密闭类、密闭方法

    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()”是密封的,无法进行重写-----看这里看这里        
    
            { }
         }
  • 相关阅读:
    Python随机数生成方法
    Django 数据聚合函数 annotate
    django获取某一个字段的列表,values/values_list/flat
    网页调用百度地图导航
    iOS webView与H5的交互(返回页面的处理)
    移除HTML5 input在type="number"时的上下小箭头
    去除a标签的下划线
    css实现单行的靠左靠右和居中效果
    查看flash的版本
    App版本号定义与说明基础知识
  • 原文地址:https://www.cnblogs.com/cicily/p/10916543.html
Copyright © 2011-2022 走看看