黑马程序员技术交流社区

标题: 子类和父类 [打印本页]

作者: 白白胖胖    时间: 2014-6-16 23:10
标题: 子类和父类
本帖最后由 白白胖胖 于 2014-6-17 11:35 编辑

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

作者: 方杰斌    时间: 2014-6-16 23:18
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)
       {
        
       }
      
    }
作者: 白白胖胖    时间: 2014-6-17 00:01
方杰斌 发表于 2014-6-16 23:18
public class Father
    {

也就是说在子类构造函数中写一个和父类一样的构造函数,在后面加上base就可以了么,那base是什么意思。
作者: czwanglei    时间: 2014-6-17 09:24
白白胖胖 发表于 2014-6-17 00:01
也就是说在子类构造函数中写一个和父类一样的构造函数,在后面加上base就可以了么,那base是什么意思。 ...

楼上说的合情合理,base是基础的,base继承了子类的的构造方法,。最好使用单步调试F11,理解程序的运行过程
作者: 黑马-柯校    时间: 2014-6-17 09:47
base关键字
1)在实例方法中 通过base关键字可以显示的访问子类对象中的非私有的父类成员.
2)调用父类的构造函数
在子类的构造函数的后面的 base 代表调用父类的构造函数.
拓展一下,为什么base只能访问到父类的非私有成员那???????
******子类从父类继承,那么子类模板中就拥有了父类模板中的所有成员,包括私有成员. 在创建子类对象的时候, 因为子类对象是根据子类模板创建出来的,所以子类对象中自然也就有父类的私有成员.
只不过父类的私有成员 在子类的内部无法访问,但是它却真实的存在.

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2