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 json 访问与字符串截取
    python 12306 车次数据获取
    12306 城市代码 切片技巧
    python 9*9 乘法表
    python 列表转为字典的两个小方法
    python 三种遍历列表里面序号和值的方法
    虚拟机中访问连接在物理机上的摄像机(使用桥接)
    C++程序调用python3
    Notepad++编写运行python程序
    查看进程被哪台电脑的哪个进程连接(netstat)
  • 原文地址:https://www.cnblogs.com/cicily/p/10916543.html
Copyright © 2011-2022 走看看