zoukankan      html  css  js  c++  java
  • 关于有参构造函数的继承问题

    基础不扎实啊。。。
    今天在写代码的时候,父类写了一个有参的构造函数,结果子类怎么写都报错,提示父类不包含采用“0”参数的构造函数。在父类增加一个无参的构造函数之后,确实不报错了,但却不是我想要的处理方式。于是从网上搜了一下,解释是这样的:

    类会从下往上延继承关系依次调用父类的无参构造函数。当FatherClass的无参构造函数被注释后,这条通道自然就不存在了,当然会报错。

    解决办法很简单,在子类的构造函数中显示调用父类的有参构造函数。下面写了Java和C#对应的写法。

    Java正确写法

    public class Father {
    	public Father(int i) {
    	}
    }
    
    class Son extends Father {
    	public Son(int i) {
    		super(i);
    	}
    }
    

    C#正确写法

    class Father
    {
        public Father(string s)
        {
            Console.WriteLine("father said " + s);
        }
    }
    class Son : Father
    {
        public Son(string s) : base(s) { }
    }
    

    参考:
    C#类继承中构造函数用法小结

  • 相关阅读:
    Linux——端口命令
    Linux——iptables 禁止 IP和端口
    CE第9关共用
    获得程序窗体标题-FindWindowW需要的参数
    mysql ODBC win10 设置
    Work
    Pet
    Is It A Tree?
    Ice_cream's world I
    小希的迷宫
  • 原文地址:https://www.cnblogs.com/wardensky/p/4187698.html
Copyright © 2011-2022 走看看