黑马程序员技术交流社区
标题:
抽象类问题 求助
[打印本页]
作者:
莫运飞
时间:
2012-4-4 15:44
标题:
抽象类问题 求助
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("manger 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 Abstract01
{
public static void main(String[] args)
{
System.out.println("manger work");
}
}
编译后爆:Employee不是抽象的,并且未覆盖Employee中的抽象方法work() class Employee
这时怎么回事??不到懂 怎么处理这个问题? 及给点抽象的说明好吗
作者:
张志阳
时间:
2012-4-4 15:57
Employee必须是抽象的通过子类来实现扩展,肯定要子类来复写抽象类中的方法 才有意义。你下面的 Manager和 Pro在Employee非抽象的状态下继承并扩展是没有意义的
作者:
尹博
时间:
2012-4-4 16:01
class Employee 你没声明是抽象类,应该是abstract class Employee
作者:
莫运飞
时间:
2012-4-4 16:30
对头 是 我在Employee类中未使用抽象方法 ,但在该类中的 public abstract void work();使用了抽象,这样就会出现了错误,不抽象的话,下面的扩展也就没有了意义是吗?
作者:
薛飞飞
时间:
2012-4-4 23:17
抽象类类名前面必须加abstract修饰;你上面明显没加!抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类!
作者:
程旦
时间:
2012-4-4 23:50
你在非抽象类中定义了抽象方法,当然报错啦。。
作者:
刘_浩
时间:
2012-4-5 00:58
public abstract void work();所以,你的class Employee应该是抽象的。在前面加个abstract。类中有方法是抽象的,那么该类就该抽象的,不要忘了写abstract,并且在子类继承父类后一定要记得复写父类的功能。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2