黑马程序员技术交流社区
标题:
Java编程中,子类可以用用这种方法给继承父类的成员变量...
[打印本页]
作者:
barrya
时间:
2014-6-18 11:48
标题:
Java编程中,子类可以用用这种方法给继承父类的成员变量...
<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>
复制代码
作者:
barrya
时间:
2014-6-18 11:51
代码复制有误,应该是下面的:
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 );
}
}
作者:
塔罗
时间:
2014-6-18 12:01
应该是super.name="Mr.li";
作者:
唐坚
时间:
2014-6-18 13:09
不可以的。
super(name)是调用父类的构造方法。但是父类默认的构造方法是super(). 所以编译都会出错。
这样你可以在父类添加一个有参数的的构造方法。如果你要对name进行初始化,在父类中
你可以声明一个
staff(String name)
{
this.name =name;
}的构造方法。
但是这样做了,子类的构造方法也要改变一下。
例如:
manager()
{
super("张三");//对name进行初始化。那么name就有值了。
}
第二种方法:
你可以用super.name ="张三";
super.name是对成员变量进行赋值操作,它只能在方法体内进行。不能写在成员变量的位置上。
所以你可以写在bonus()这个方法体内。
那么name就有值了。
作者:
马宁
时间:
2014-6-18 13:15
来学习一下 !
作者:
闪耀.Q
时间:
2014-6-18 13:20
super(name) = "Mr.Li"; 这里不对。可以在父类中写一个构造函数
staff(String name)
{
this.name =name;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2