特别的构造函数:构造函数的修饰

构造函数并不一定都是public的,以下的代码是不是另拟感到构造函数的奇特阿?

 1    public class Class1//永远无法被实例化的类
 2    {
 3        //这个类没有可以被外部访问的构造函数
 4        private Class1()
 5        {
 6        }

 7    }

 8
 9    public class Class2//只可以在本程序内实例化的类
10    {
11        internal Class2()
12        {
13        }

14    }

15
16    public class Class3//只可以通过自身实例化的类
17    {
18        private Class3()
19        {
20        }

21        //private的构造函数可以被自身的方法调用,所以可以用Class3.CreateClass3()来创建实例
22        public static Class3 CreateClass3()
23        {
24            return new Class3();
25        }

26    }

27
28    public class Class4
29    {
30        //Class4不能被实例化,但又要求子类在继承时构造有参
31        protected Class4(int i)
32        { }
33
34    }

35
36    public class Class4Sub : Class4
37    {
38
39        public Class4Sub(int i)
40            : base(i)
41        {
42
43        }

44    }

45    
46    public class Class5//要求子类必须显示调用父类构造函数的
47    {
48        public Class5(int i)
49        { }
50    }

51
52    public class Class5Sub : Class5
53    {
54        public Class5Sub()
55            : base(0)
56        { }
57        public Class5Sub(int i)
58            : base(i)
59        { }
60    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值