zoukankan      html  css  js  c++  java
  • 密封方法 密封类(sealed)


    1. 密封类 即不希望类被继承,无派生类。
       密封方法 即不允许被重载的方法。

    2. 密封方法 所在的类 不一定是密封类 (和抽象方法不同) ,  该类的派生类中必须原封不动的继承这个密封方法. 

        密封方法本身也是个重载方法, 即 必须 sealed 和 override 都要有.

    3. 密封方法不能被重载(override), 但可以被覆盖(new).

     
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace ConsoleApp
    {
        class sealedSample
        {
            public static void Main()
            {
                A a = new A1();
                a.Output();
    
                a = new A2();
                a.Output();
    
                a = new A1_1();
                a.Output();
    
                a = new A1_2();
                a.Output();
    
                Console.Read();
            }
        }
        
        //抽象类
        public abstract class A
        {
            //抽象方法
            public abstract void Output();
        }
    
        //派生 实现
        public class A1 : A
        {
            //重写基类A的Output(), 并且设为 密封方法!
            public sealed override void Output()
            {
                Console.WriteLine("A1");
            }
            
            //// X 密封方法必须有override!
            //public sealed void Output()
            //{
            //    Console.WriteLine("A1");
            //}
        }
    
        //定义密封类 A2
        public sealed class A2 : A
        {
            public override void Output()
            {
                Console.WriteLine("A2");
            }
        }
    
        public class A1_1 : A1
        {
            //继承其父类(A1)的 Output()
            
        }
    
        public class A1_2 : A1
        {
    
            // X 不能重写 sealed方法, 只能 覆盖 new方法
            //public  override void Output()
            //{
            //    Console.WriteLine("A1_2");
            //}
    
            public new void Output()
            {
                Console.WriteLine("A1_2");
            }
        }
    }
    

     结果:

    A1
    A2
    A1
    A1

  • 相关阅读:
    Python自然语言处理资料库
    Solr 中 Schema 结构说明
    solr 高亮显示
    HTML URL 编码
    IDEA java开发 Restful 风格的WebService
    Intellij IDEA中使用log4j日志
    IntelliJ IDEA java开发 WebService
    java 实现poi方式读取word文件内容
    Ubuntu安装nodeJS
    Ubuntu 系统下 mongodb 安装和配置
  • 原文地址:https://www.cnblogs.com/streetpasser/p/2793927.html
Copyright © 2011-2022 走看看