类在声明同时可以包含声明继承关系
如何没有声明基类,则默认为从object继承
明确声明类时,需要描述类的各种约束
不可以直接派生的类
System.Array
System.Delegate
System.Enum
System.ValueType
派生类和父类可以有同样级别的访问修饰
类的默认声明是内部的,但可以显式声明
1
//显示声明类为内部类
2
internalclassWarehouseBase//仓库
3

{
4
5
}
6
7
//默认方式声明的类也是内部类
8
abstractclassWarehouseBase//仓库
9

{
10
11
12
}
//显示声明类为内部类2
internalclassWarehouseBase//仓库3


{4

5
}6

7
//默认方式声明的类也是内部类8
abstractclassWarehouseBase//仓库9


{10

11

12
}
子类(即派生类)的访问修饰不能比基类(即父类)高
1
publicabstractclassWarehouseBase//仓库
2

{
3
4
5
}
6
7
//public->internal可以
8
internalclassAutomaticWarehouse:WarehouseBase//自动化仓库
9

{
10
11
}
12
13
14
//internal->public不可以
15
//可访问性不一致:基类“Space.AutomaticWarehouse”比类“Space.SolidWarehouse”的可访问性低
16
publicclassSolidWarehouse:AutomaticWarehouse//立体仓库
17

{
18
19
}
20
21
22
//public->public可以
23
publicsealedclassVirtualWarehouse:WarehouseBase//虚拟仓库
24

{
25
26
}
publicabstractclassWarehouseBase//仓库2


{3

4

5
}6

7
//public->internal可以8
internalclassAutomaticWarehouse:WarehouseBase//自动化仓库9


{10

11
}12

13

14
//internal->public不可以15
//可访问性不一致:基类“Space.AutomaticWarehouse”比类“Space.SolidWarehouse”的可访问性低16
publicclassSolidWarehouse:AutomaticWarehouse//立体仓库17


{18

19
}20

21

22
//public->public可以23
publicsealedclassVirtualWarehouse:WarehouseBase//虚拟仓库24


{25

26
}
类不可以显式声明为 private、protected 或 protected internal
1
//错误
2
privateabstractclassWarehouseBase//仓库
3

{
4
5
6
}
7
8
//错误
9
protectedclassAutomaticWarehouse:WarehouseBase//自动化仓库
10

{
11
12
}
13
14
15
//错误
16
protectedinternalclassSolidWarehouse:AutomaticWarehouse//立体仓库
17

{
18
19
}
//错误2
privateabstractclassWarehouseBase//仓库3


{4

5

6
}7

8
//错误9
protectedclassAutomaticWarehouse:WarehouseBase//自动化仓库10


{11

12
}13

14

15
//错误16
protectedinternalclassSolidWarehouse:AutomaticWarehouse//立体仓库17


{18

19
}
但可以在类的内部显示的声明private、protected 或 protected internal
1
publicclassAutomaticWarehouse:WarehouseBase//自动化仓库
2

{
3
protectedinternalclassSolidWarehouse:AutomaticWarehouse//立体仓库
4

{
5
6
}
7
8
privatesealedclassPlaneWarehouse:WarehouseBase//平面仓库
9

{
10
11
}
12
13
protectedinternalsealedclassStack:WarehouseBase
14

{
15
16
}
17
}
publicclassAutomaticWarehouse:WarehouseBase//自动化仓库2


{3
protectedinternalclassSolidWarehouse:AutomaticWarehouse//立体仓库4


{5

6
}7

8
privatesealedclassPlaneWarehouse:WarehouseBase//平面仓库9


{10

11
}12

13
protectedinternalsealedclassStack:WarehouseBase14


{15

16
}17
}
本文介绍在面向对象编程中,类的声明方式及其继承规则。包括默认的内部访问级别、派生类与基类的访问级别限制,以及不可派生的特殊类等。同时强调了类声明时的一些限制条件。
1366

被折叠的 条评论
为什么被折叠?



