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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 鲜学良 于 2012-12-21 11:46 编辑

如何在调用父类构造函数时,给子类字段赋值。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

7 个回复

倒序浏览
在父类中增加一个无参数的构造函数就行了。
例如:
using System;
calss Vehicle//定义汽车类
{
      public int wheels;//公有成员:轮子个数
      protected float weight; //保护成员:重量
      public  Vehicle(){;}  //在父类中增加一个无参数的构造函数
      public   Vehicle(int w,float g){
                   wheels = w;
                   weight = g;
            }
     public void Show(){......}
};
class Car:Vehicle//定义轿车类
{
        int passengers;//私有成员:乘客数
        public Car(int w,float g,int p):base(w,g)
        {
              wheels=w;
              weight=g;
              passengers=p;
        }
        public void Show(){......}
}
            
     
回复 使用道具 举报 0 1
也可用显示调用有参函数:关键字base,
举例:
public Teacher(string name, int age, char gender,int salary)
            : base(name, age, gender)
        {
            this.Salary = salary;
            
        }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 鲜学良 于 2012-12-21 11:44 编辑
许庭洲 发表于 2012-12-20 20:48
在父类中增加一个无参数的构造函数就行了。
例如:
using System;

老师:在父类的构造函数中可以给子类的passenger赋值吗?我原来以为这个题是要求这样。
回复 使用道具 举报
鲜学良 发表于 2012-12-20 21:41
老师:在父类的构造函数中可以给子类的passenger赋值吗?我原来以为这个题是要求这样,当时没做出来。 ...

需要给passenger定义访问级别,因为访问级别需要的用处在于控制该属性在哪些地方可以被访问。
回复 使用道具 举报
许庭洲 发表于 2012-12-20 21:50
需要给passenger定义访问级别,因为访问级别需要的用处在于控制该属性在哪些地方可以被访问。 ...

但是passenger不是静态的,在构造父类时子类不是还没有构造吗?怎么给它赋值呢。
回复 使用道具 举报
许庭洲 黑马帝 2012-12-20 22:00:14
7#
使用构造函数一定要注意不要做对类的实例进行初始化以外的事情,也不要尝试显示地调用构造函数。
回复 使用道具 举报
许庭洲 发表于 2012-12-20 22:00
使用构造函数一定要注意不要做对类的实例进行初始化以外的事情,也不要尝试显示地调用构造函数。 ...

哦,记下了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马