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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 劇情侢媄終究媞 中级黑马   /  2014-5-29 03:13  /  1271 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 劇情侢媄終究媞 于 2014-5-29 19:06 编辑

父类中有一个重载的构造方法可以给父类的私有字段赋值.那么子类能否调用父类的构造方法对父类的私有字段赋值.

  1. namespace 继承2
  2. {
  3.     class Person
  4.     {
  5.         private string name;

  6.         public string Name
  7.         {
  8.             get { return name; }
  9.             set { name = value; }
  10.         }
  11.         private int age;

  12.         public int Age
  13.         {
  14.             get { return age; }
  15.             set { age = value; }
  16.         }
  17.         private char gender;

  18.         public char Gender
  19.         {
  20.             get { return gender; }
  21.             set { gender = value; }
  22.         }
  23.         public Person()
  24.         {

  25.         }
  26.         public Person(string name,int age,char gender)
  27.         {
  28.             this.name = name;
  29.             this.age = age;
  30.             this.gender = gender;

  31.         }
  32.     }
  33.     class Student:Person
  34.     {
  35.         private int score;

  36.         public int Score
  37.         {
  38.             get { return score; }
  39.             set { score = value; }
  40.         }
  41.         public Student(string name,int age,char gender,int score):base(name,age,gender)
  42.         {
  43.             this.score = score;

  44.         }
  45.     }
  46. }
复制代码

这样是不是算是子类调用父类的构造方法.来给父类的私有字段赋值的

点评

最好附上代码,这个要看具体情况了。  发表于 2014-5-29 18:47

5 个回复

倒序浏览
在子类的构造方法中,不能直接通过父类方法名调用父类的构造方法
回复 使用道具 举报
你要继承这个构造函数,但是不能够取得私有字段,不过如果父类中的其它方法用到这些私有字段,在子类中同样能够获得到,只是不能够在子类中显示调用父类的私有字段,
回复 使用道具 举报
方杰斌 发表于 2014-5-29 08:33
在子类的构造方法中,不能直接通过父类方法名调用父类的构造方法

public 子类名( )base()
{
      
}
这样的方法呢?
回复 使用道具 举报
劇情侢媄終究媞 发表于 2014-5-29 11:16
public 子类名( )base()
{
      

这样的  单独调用   私有的也调用不了。
除非  有  get  set
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马