A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白白胖胖 中级黑马   /  2014-6-16 23:10  /  1675 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 白白胖胖 于 2014-6-17 11:35 编辑

我知道子类可以使用父类的所有功能,但是如果父类有一构造函数(参数),那么子类怎么去使用父类的这个有参的构造函数?

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1 赞一个!

查看全部评分

4 个回复

正序浏览
base关键字
1)在实例方法中 通过base关键字可以显示的访问子类对象中的非私有的父类成员.
2)调用父类的构造函数
在子类的构造函数的后面的 base 代表调用父类的构造函数.
拓展一下,为什么base只能访问到父类的非私有成员那???????
******子类从父类继承,那么子类模板中就拥有了父类模板中的所有成员,包括私有成员. 在创建子类对象的时候, 因为子类对象是根据子类模板创建出来的,所以子类对象中自然也就有父类的私有成员.
只不过父类的私有成员 在子类的内部无法访问,但是它却真实的存在.

关于调用父类构造函数过程,
首先,调用子类构造函数
2.调用父类构造函数
3.执行父类构造函数
4.执行子类构造函数

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
白白胖胖 发表于 2014-6-17 00:01
也就是说在子类构造函数中写一个和父类一样的构造函数,在后面加上base就可以了么,那base是什么意思。 ...

楼上说的合情合理,base是基础的,base继承了子类的的构造方法,。最好使用单步调试F11,理解程序的运行过程
回复 使用道具 举报
方杰斌 发表于 2014-6-16 23:18
public class Father
    {

也就是说在子类构造函数中写一个和父类一样的构造函数,在后面加上base就可以了么,那base是什么意思。
回复 使用道具 举报
public class Father
    {

       public Father(string firstName, decimal wealth, string blood)
       {
           this.FirstName = firstName;
           this.Wealth = wealth;
           this.Blood = blood;
       }
}


儿子

public class Son:Father  
    {
       public Son(string firstName, decimal wealth, string blood):base(firstName, wealth,  blood)
       {
        
       }
      
    }

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马