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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

barrya

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

  1. <p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">各位大神,</p><p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">问个问题</p><p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">Java编程中,子类可以用用这种方法给继承父类的成员变量赋值么?</p>
复制代码


5 个回复

倒序浏览
代码复制有误,应该是下面的:
abstract class staff
{
        String name;
        int number;
        int salary;
        int bonus;
        void show()
        {
                System.out.println(name + " :(" +number+") salary is " + salary );
        }
        abstract void bonus();
}
class manager extends staff
{
        super(name) = "Mr.Li";//可以通过这种方法给变量赋值吗??
//        salary = 50000;
        //number = 12345;
        //bonus = 100000;
        void bonus()
        {
                System.out.println(name + " :(" +number+") salary is " + bonus );
        }
}

评分

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

查看全部评分

回复 使用道具 举报
应该是super.name="Mr.li";
回复 使用道具 举报
不可以的。
super(name)是调用父类的构造方法。但是父类默认的构造方法是super(). 所以编译都会出错。
这样你可以在父类添加一个有参数的的构造方法。如果你要对name进行初始化,在父类中
你可以声明一个
  staff(String name)
        {
                this.name =name;
                }的构造方法。
      
但是这样做了,子类的构造方法也要改变一下。
例如:
manager()
  {
          super("张三");//对name进行初始化。那么name就有值了。
          }
第二种方法:
你可以用super.name ="张三";
super.name是对成员变量进行赋值操作,它只能在方法体内进行。不能写在成员变量的位置上。
所以你可以写在bonus()这个方法体内。
那么name就有值了。

评分

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

查看全部评分

回复 使用道具 举报 1 0
来学习一下 !
回复 使用道具 举报
super(name) = "Mr.Li"; 这里不对。可以在父类中写一个构造函数
staff(String name)
{
       this.name =name;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马