黑马程序员技术交流社区
标题:
关于抽象类和继承的问题,求大神指教
[打印本页]
作者:
沐阳6011
时间:
2014-6-4 10:54
标题:
关于抽象类和继承的问题,求大神指教
本帖最后由 沐阳6011 于 2014-6-4 11:22 编辑
abstract class Employee
{
private String name;
private String id;
private double pay;
Employee(String name,String id,double pay)
{
this.setName(name);
this.setId(id);
this.setpay(pay);
}
public void setName(String name) //设置姓名
{
this.name=name;
}
public String getName() // 获得姓名
{
return name;
}
public void setId(String id) //设置编号
{
this.id=id;
}
public String getId() //获得编号
{
return id;
}
public void setPay(double pay) //获得编号
{
this.pay=pay;
}
public double getPay() //获得工资
{
return pay;
}
public abstract void work();
public void display()// 显示雇员的信息;
{
System.out.println(name+","+id+","+pay);
}
}
class Pro extends Employee
{
Pro(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("Pro working");
}
}
class Manager extends Employee
{
private double bonus;
Manager(String name,String id,double pay,double bonus)
{
super(name,id,pay);
this.bonus= bonus;
}
public void work()
{
System.out.println("Manager working");
}
public void display()
{
System.out.println(super.getName()+","+super.getId()+","+super.getPay()+","+this.bonus);
/*System.out.println(super.display()+","+this.bonus);*/
}
}
class AbstractTest2
{
public static void main(String[] args)
{
Manager mJoker = new Manager("Mjokers","M001",8000,10000);
mJoker.work();
mJoker.display();
}
}
复制代码
这个代码是正确的,但是注释中的内容替换了它上一条输出语句就会报错。super可以调用父类中的get函数,为什么不能调用display函数。错误提示是:super.display(),此处不允许使用空类型。这是怎么回事,两个函数都是空参的啊?
求懂的哥们们指教一下。:):)
作者:
wangmin
时间:
2014-6-4 11:30
因为display()函数没有返回值,不能放在输出语句中执行,把它放到输出语句外面去就可以调用了,能够在输出中调用get方法是因为get方法有返回值
作者:
沐阳6011
时间:
2014-6-4 16:21
wangmin 发表于 2014-6-4 11:30
因为display()函数没有返回值,不能放在输出语句中执行,把它放到输出语句外面去就可以调用了,能够在输出中 ...
果然是这么回事儿,输出语句只能输出有返回值的函数。这下我就全明白了,谢谢了。:victory:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2