构造函数后面的base()

先执行父类的对应的构造函数,再执行当前的构造函数。

关于子类对象的构造函数和父类构造函数的执行顺序

以下内容转自:http://blog.csdn.net/todototry/article/details/4941484

原则:

1、任何类的构造函数,一定要是public的,才能派生子类

class Base
        {
            private int i;
            public Base(int i)
            {
                this.i = i;
                Console.WriteLine("Base constructor!");
            }
        }

class A : Base
        {
            public A()
            {
                Console.WriteLine("child");
            }
        }

static void Main()
        {
            A a = new A();
        }

a实例化对象构造的时候,因为没有指定的出父类的构造函数,所以去调用无参构造函数,而Base类中没有无参构造函数了,默认构造函数让人为所定义的构造函数覆盖,于是构造错误

2、这样使用:

class Base
        {
            private int i;
            public Base(int i)
            {
                this.i = i;
                Console.WriteLine("Base constructor!");
            }
        }

class A : Base
        {
            public A():base(6)
            {
                Console.WriteLine("child");
            }
        }

static void Main()
        {
            A a = new A();
        }

C#中对于基类之所以可以只用base关键字构造,是因为C#中是不存在多继承的,只有单个继承,所以一个固定的名字代表基类足矣

时间: 2024-10-03 22:49:19

构造函数后面的base()的相关文章

(转)C# :base的用法(冒号后面的base)

c# 中关于: base()用法,在此记录一下,方便查阅 1.this是标识当前资源对象的,而base是基于父级的. 2.base发挥了期灵魂级的作用--多态 3.base子类可以访问父类成员 4.base调用父类方法必须重写父类方法 5.base子类构造函数直接访问:base父类构造方法 6.base同样不能用于静态方法 public abstract class HttpBasedTransport : ClientTransportBase { protected HttpBasedTra

C++如何去除浮点数字符串后面的零

有时我们需要将浮点数转化为字符,然后打印输出.下面是c++的里的一种实现: char str[32]; double num = 32.0100; sprintf(str, "%f", num); std::cout<<str<<std::endl; 常见输出: 32.0100 但是,有时我们会有这样的需求:舍弃字符串最后多余的零. 我最近就遇到了这种需求,各处求解,最后通过网上案例的启发,想到了两种解决方案. 方案1: 创建一个函数removeLastZero

将后面的m个数移到前面

#include<iostream> #include<algorithm> #include<stdio.h> #include<numeric> using namespace std; int bigswap(char* a,int start,int end) { while(start<end) { swap(a[start],a[end]); start++; end--; } return 1; } int helper(char* a,

清除zencart分类页多页后面的&amp;disp_order &amp;sort字符串的方法

在includes\classes\split_page_results.php页面中的function display_links()函数第一行添加如下两行代码即可$parameters=preg_replace("/&disp_order=[0-9]*/","",$parameters); $parameters=preg_replace("/&sort=[0-9]*/","",$parameters);

Linux中awk后面的RS, ORS, FS, OFS 用法

Linux中awk后面的RS, ORS, FS, OFS 含义 一.RS 与 ORS 差在哪 我们经常会说,awk是基于行列操作文本的,但如何定义"行"呢?这就是RS的作用.  默认情况下,RS的值是\n.下面通过实例来理解下RS. echo '1a2a3a4a5' | awk '{print $1}' 1a2a3a4a5 echo '1a2a3a4a5' | awk 'BEGIN{RS="a"}{print $1}' 1 2 3 4 5我们可以看到,在更改了RS的

日历(从今天起后面的14天)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> #calender li { list-style: none; table-layout: fixed; } #calender li a { display: ta

springboot启动成功但是debug出现后面的Connected to the target VM, address: &#39;127.0.0.1:53340&#39;, transport: &#39;socket&#39;

springboot启动成功但是debug出现后面的Connected to the target VM, address: '127.0.0.1:53340', transport: 'socket' 打开Breakpoints面板 ctrl + shift + F8 进入 或者 工具栏 run -->view Breakpoints... 把打勾全去掉 虽然还是有上面的问题,但是项目能正常运行了 解决参照:https://blog.csdn.net/gcj729027291/article/

如何理解jsp页面的“&lt;base href=&quot;&lt;%=basePath%&gt;&quot;&gt;”

jsp文件里通常有以下代码: 这里的<base href="<%=basePath%>">是什么意思呢? 我在W3School网站上查了html中的base标签,解释如下: <base> 标签为页面上的所有链接规定默认地址或默认目标. 通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白. 使用 <base> 标签可以改变这一点.浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有

C#构造函数里的base和this的区别

用法一: 父类的构造函数总是在子类之前执行的.既先初始化静态构造函数,后初始化子类构造函数. public class BaseCircle { public BaseCircle() { Console.WriteLine(" no arguments base constructor!!!"); } public BaseCircle(double arg) { Console.WriteLine("double arg base constructor!!!"