黑马程序员技术交流社区
标题:
关于抽象继承的问题
[打印本页]
作者:
佛山java爱好者
时间:
2014-7-21 21:22
标题:
关于抽象继承的问题
//员工包含三个属性:姓名,id,工资,经理也是员工,除了包含员工的属性外,还有一个奖金属性,请使用继思想设计出员工和经理类,要求类中提供必要的方法
class Employee
{
private String name;
private String id;
private double pay;
Employee(String name,String id,double pay)
{
this.name=name;
this.id=id;
this.pay=pay;
}
public abstract void work();
}
class Manager extends Employee
{
private int bonus;
Manager(String name,String id,double pay,int bonus)
{
super(name,id,pay);
this.bonus=bonus;
}
public void work()
{
System.out.println("manager work");
}
}
class pro extends Employee
{
pro(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("pro work");
}
}
class workerDemo
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
编译时候提示Employee不是抽象的,不能覆盖抽象work()方法,是哪里出问题啦?
作者:
依然超级赛亚人
时间:
2014-7-21 22:02
这...这明显是因为定义Employee这个类的时候没有加abstract修饰嘛,在第一句代码class Employee的前面加上abstract(也就是abstract class Employee)应该就行了吧?
作者:
doubandddk
时间:
2014-7-21 22:22
这个是考试题么
作者:
杨冬冬
时间:
2014-7-21 23:17
在class Employee之前加个abstract就行了,你的代码太不规范了,好好学学代码规范吧
作者:
rolling-stone
时间:
2014-7-21 23:36
因为类中有抽象函数的时候,它的本身的这个类也必须是抽象的.也就是说一个类里面如果有abstract来修饰方法,这个类前面也必须有abstract,所以楼主你把class Employee前面加上abstract就行了
还有我记得你这个代码少写了一个Manager类吧.
class Manager extends Employee
{
Manager(String name,String id,double money,double bouns)
{
super(name,id,money);
this.bouns = bouns;
}
public void work()
{
System.out.println("Manager Work");
}
}
class pro extends Manager
{
pro(String name,String id,double money)
{
super(name,id,money);
}
public void work()
{
System.out.println("pro Work");
}
}
类pro不是继承employee而是继承manager类
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2