• 私有构造函数的特点和用途


    本篇体验私有构造函数的特点,以及在何种情况下使用私有构造函数。

    □ 带私有构造函数的类不能被继承

    在Animal类中声明一个私有构造函数,让Dog类来继承Animal类。

        public class Animal
    
        {
    
            private Animal()
    
            {
    
                Console.WriteLine("i am animal");
    
            }
    
        }
    
        public class Dog : Animal
    
        {
    
            
    
        }
    

      生成解决方案,报错如下:   
    1

    □ 带私有构造函数的类不能被实例化

        class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
                Animal animal = new Animal();
    
            }
    
        }
    
        public class Animal
    
        {
    
            private Animal()
    
            {
    
                Console.WriteLine("i am animal");
    
            }
    
        }
    

    生成解决方案,报错如下:
    2

    □ 私有构造函数的应用

    有些时候,我们不希望一个类被过多地被实例化,比如有关全局的类、路由类等。这时候,我们可以为类设置构造函数并提供静态方法。

        class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
                string str = Animal.GetMsg();
    
                Console.WriteLine(str);
    
                Console.ReadKey();
    
            }
    
        }
    
        public class Animal
    
        {
    
            private Animal()
    
            {
    
                Console.WriteLine("i am animal");
    
            }
    
            public static string GetMsg()
    
            {
    
                return "Hello World";
    
            }
    
        }
    

    总结:一旦一个类被设置成私有构造函数,就不能被继承,不能被实例化,这种情况下,通常为类提供静态方法以供调用。

  • 相关阅读:
    python中使用到lxml模块时,py2exe打包方法
    python random
    pip install lxml出错解决
    Windows上Python2和3如何兼容
    python 2.4 与 python 3.0 的比较
    java综合(三)springmvc与spring上下文关系
    java综合(二)springmvc与spring整合
    PHP7 新增加的两种运算符
    PHP trait 特性
    PHP 字符串拆分函数
  • 原文地址:https://www.cnblogs.com/darrenji/p/3907448.html
Copyright © 2020-2023  润新知