构造方法后面加上了:base

今天看公司软件的代码碰到一个奇怪的方法 ,寻早了各种方法后终于明白了,在构造方法后面加上了:base(message),该类如下:

public NONEDIException(string message)是NONEDIException的构造函数,base(message)是其父类的构造函数

public NONEDIException(string message) :base(message)指的是在NONEDIException中调用其父类的带string类型的构造函数。因为在子类不能直接继承父类的构造函数,

只能通过这种方式调用。

我的理解是,当父类有多个构造函数时,通过:base()来指定父类该调哪个构造函数

时间: 2024-08-28 06:24:49

构造方法后面加上了:base的相关文章

php 构造方法

我想说的是php创建一个类的实例的时候,构造方法调用的问题. php中不像java一样,创建一个class的实例的时候 会自动的首先调用父类(超类)的构造方法,以确保所有的属性都可以被正确的初始化.php 不会在本类的构造方法中再自动的调用父类的构造方法.如果真的需要调用父类的构造方法,可以手动的调用parent::__construct($params...); class Base{ function __construct(){ //do sth here.... } } 如果我们需要些一

Swift:面向对象(继承与构造方法)

一. 继承 1.  Swift中定义的类,如果不继承自任何类,它就是基类.这一点和objective-c中定义的类不一样,在objective-c中定义的类默认的基类是NSObject. 2.  重写父类的方法及属性,必须使用override的关键字(这样处理的话,更清晰了,很容易看出是父类的方法还是自己类中的方法). 3.  如果在类,方法,属性 前面用final进行了修饰,就不允许被继承或者被重写. 类继承关系Demo: class Animal { var speed : Int = 1

多类继承情况下适应变化设计一例

在支付中心的中信支付渠道实现层里,关于每个支付接口的对接实现,类图设计方式如下(后附支付中心程序框架-分层结构),诸如获取动态支付码.公众号/服务窗.订单查询.关单.退款.代付.代付查询等每种支付接口的api实现均继承了同一个基类. ClassDiagram 支付中心程序框架-分层结构 基类封装了请求渠道方api所必须的参数验证.签名.生成请求报文.发起请求.验证响应报文这一系列环节.这样的OO设计,可以简化每个支付接口api类的逻辑实现,它们只需构造请求模型,然后调用基类Communicate

数往知来C#面向对象〈三〉

C# 基础方法篇 一.复习 1)方法的重载 方法的重载并不是一个方法,实际上方法的重载就是一些不同的 方法,目的是为了方便程序员编码,所以将功能相近的方法命名相同 根据参数,编译器自动的去匹配方法体,而不需要程序员记住 的方法 -->如何判断重载写的对不对 将方法的定义拿出来,去掉修饰符,去掉方法体,去掉返回类型 int InputNum() int InputNum(int max) int InputNum(int min,int max) -->将参数列表中的局部变量名去掉,只留参数类型

java程序

This XML file does not appear to have any style information associated with it. The document tree is shown below.博客园_首页代码改变世界uuid:5de59c50-a92f-4447-96ed-ab86451ed183;id=61182014-07-27T11:59:08Zfeed.cnblogs.comhttp://www.cnblogs.com/jianyus/p/3865670

进程和线程

一.进程://进程用到的类Process,需要进行解析 using System.Diagnostics Process.Start("calc");//Process是非静态方法,括号里面是要开启的进程的名字 (静态方法与非静态方法区别:静态方法不用实例化对象,直接可以点出里面的方法) 弊端:有许多程序不知道它的运行名字到底是什么,如果写错了,就会出现程序崩溃错误 //选择程序 private void button1_Click(object sender, EventArgs e

封装axios请求

参照这个封装api的代码   可以了解base的问题了 再加上对`${base/login}`的了解   下面 封装axios请求  以供调用 let base = '' export const requestLogin = params => { return axios.post(`${base}/login`, params).then(res => res.data) } export const reqSaveUserProfile = params => { return

面向对象知识点

/*目前存在的问题: 1. 无法描述清楚这两个类之间的继承关系. 2. 存在着重复代码. 面向对象的三大特征: 1. 封装 2. 继承 3. 多态. 继承:继承是通过关键字extends体现的. 继承的格式: class 类名1 extends 类名2{ } 继承要注意的事项: 1. 千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承. 2. 父类私有的成员不能被继承. 3. 父类的构造函数不能被继承. 4. 创建子类对象时默认会先调用父类无参的构造函数. *//*疑问: 为

Android 一些错误

android fragment里面放viewpager 嵌套fragment 报错: 解决:在adapter的构造方法里加上 super(fragment.getChildFragmentManager) 把android项目变成lib的时候会在switch语句那里报错 解决:switch语句的case必须是常量R.id.xx 在作为项目的时候是常量 作为lib的时候不是 所以要变成if (id==R.id.xx) 自定义的view属性 然后把android项目变成lib的时候会报No res