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

简介:
构造函数并不一定都是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 }

 



本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806285

相关文章
|
7月前
|
编译器 C++
C++类与对象(四):再谈构造函数(详解初始化列表)、Static成员
C++类与对象(四):再谈构造函数(详解初始化列表)、Static成员
110 0
|
7月前
|
设计模式 算法 安全
【C/C++ 关键字 函数说明符 】C++ final关键字(修饰成员函数无法被子类重写覆盖)
【C/C++ 关键字 函数说明符 】C++ final关键字(修饰成员函数无法被子类重写覆盖)
151 1
|
7月前
|
JavaScript
TypeScript【类的继承、访问修饰符、readonly 修饰符、存取器、实例方法与静态方法、实例属性与静态属性、静态属性、抽象类】(三)-全面详解(学习总结---从入门到深化)
TypeScript【类的继承、访问修饰符、readonly 修饰符、存取器、实例方法与静态方法、实例属性与静态属性、静态属性、抽象类】(三)-全面详解(学习总结---从入门到深化)
68 0
|
4月前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
82 4
|
7月前
|
C++
C++ 类的初始化列表与构造函数初始化的技术性探讨
C++ 类的初始化列表与构造函数初始化的技术性探讨
40 0
|
7月前
|
存储 编译器 C++
【C++成长记】C++入门 | 类和对象(上) |类的作用域、类的实例化、类的对象大小的计算、类成员函数的this指针
【C++成长记】C++入门 | 类和对象(上) |类的作用域、类的实例化、类的对象大小的计算、类成员函数的this指针
|
存储 编译器 C语言
【C++基础】类与对象(中):默认成员函数、构造函数、析构函数、拷贝构造、赋值重载函数……
【C++基础】类与对象(中):默认成员函数、构造函数、析构函数、拷贝构造、赋值重载函数……
90 0
|
安全 编译器 C++
[C++] 类与对象(中)类中六个默认成员函数(1)上
[C++] 类与对象(中)类中六个默认成员函数(1)上
|
7月前
|
编译器 C#
c#学习相关系列之构造函数
c#学习相关系列之构造函数
|
存储 编译器 C++
[C++] 类与对象(中)类中六个默认成员函数(1)下
[C++] 类与对象(中)类中六个默认成员函数(1)下