类的继承关系声明和访问修饰

本文介绍了类在声明时的继承关系及约束条件,包括默认继承自object、不可直接派生的类、派生类与父类访问级别限制等。还讨论了类的访问修饰符及其在子类中的使用限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类在声明同时可以包含声明继承关系
如何没有声明基类,则默认为从object继承
明确声明类时,需要描述类的各种约束
不可以直接派生的类
System.Array
System.Delegate
System.Enum
System.ValueType


派生类和父类可以有同样级别的访问修饰

类的默认声明是内部的,但可以显式声明

 1    // 显示声明类为内部类
 2    internal class WarehouseBase//仓库
 3    
 4    
 5    }

 6
 7    //默认方式声明的类也是内部类
 8    abstract class WarehouseBase//仓库
 9    {
10       
11        
12    }

子类(即派生类)的访问修饰不能比基类(即父类)高

 1    public abstract class WarehouseBase//仓库
 2    {
 3       
 4        
 5    }

 6
 7    //public->internal可以
 8    internal class AutomaticWarehouse : WarehouseBase //自动化仓库 
 9    {
10
11    }

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

20
21
22    //public->public可以
23    public sealed class VirtualWarehouse : WarehouseBase  //虚拟仓库 
24    {
25
26    }


类不可以显式声明为 private、protected 或 protected internal

 1    //错误
 2    private abstract class WarehouseBase//仓库
 3    {
 4
 5
 6    }

 7
 8    //错误
 9    protected class AutomaticWarehouse : WarehouseBase //自动化仓库 
10    {
11
12    }

13
14
15    //错误
16    protected internal class SolidWarehouse : AutomaticWarehouse//立体仓库
17    {
18
19    }

但可以在类的内部显示的声明private、protected 或 protected internal

 1    public class AutomaticWarehouse : WarehouseBase //自动化仓库 
 2    {
 3        protected internal class SolidWarehouse : AutomaticWarehouse//立体仓库
 4        {
 5
 6        }

 7
 8        private sealed class PlaneWarehouse : WarehouseBase  //平面仓库 
 9        {
10
11        }

12
13        protected internal sealed class Stack : WarehouseBase
14        {
15
16        }

17    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值