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


    类在声明同时可以包含声明继承关系
    如何没有声明基类,则默认为从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    }
  • 相关阅读:
    java注解说明
    paypal
    eclispe查看jdk源码后特别卡顿导致未响应解决
    ubuntu+tomcat,多环境、自动化部署脚本,git+maven+tomcat+ubuntu
    ubuntu+let's encrypt生成永久免费https证书 ubuntu+tomcat+nginx+let's encrypt
    MySQL创建数据库与创建用户以及授权
    linux查找并杀死进程shell
    redmine安装笔记
    C#动态获取本机可用串口的两种方式
    C# 控件缩写规范
  • 原文地址:https://www.cnblogs.com/shyleoking/p/638099.html
Copyright © 2020-2023  润新知