黑马程序员技术交流社区
标题:
关于抽象类的小困惑
[打印本页]
作者:
cyh8807
时间:
2013-3-10 15:56
标题:
关于抽象类的小困惑
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 double bonus;
Manage(String name,String id,double pay,double bonus)
{
super(name,id,pay);
this.boune = bonus;
}
public void work()
{
System.out.println("manager work");
}
}
复制代码
上述代码中 public abstract void work();为抽象方法,但是抽象方法必须定义在抽象类中,但是这个类
却没有定义为抽象类。那么为什么可以在不是抽象的类中定义抽象方法呢?
在上面的这种情况下是否可以new Employee()创建具体的实例对象呢?
作者:
张宁
时间:
2013-3-10 16:18
朋友,这个代码是错误的,类前边肯定要加abstract。如果有抽象方法,那么这个类肯定不可以new,你new一个带有抽象方法的类。那么这个抽象方法又不能调用,这是说不过去的。所以只要类里边含有抽象方法,那么这个类就一定是抽象的。这个程序你运行了吗?肯定运行不通过。抽象方法一定在抽象类中,这是抽象类象类的特点。
作者:
沈文杰
时间:
2013-3-10 16:29
本帖最后由 沈文杰 于 2013-3-10 16:35 编辑
abstract 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 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 work");
}
}
public class AbstractClass {
public static void main(String[] args){
Manager ma = new Manager("zhangsan","kasdf",12233,10000.1);
ma.work();
}
}
复制代码
哥们你代码错误好多啊,不是用MyEclipse编译的吧。。真心不懂你怎么过的啊
作者:
沈文杰
时间:
2013-3-10 16:34
本帖最后由 沈文杰 于 2013-3-10 16:36 编辑
[color=Red]abstract[/color] 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 double bonus;
Manage[color=Red]r[/color](String name,String id,double pay,double bonus)
{
super(name,id,pay);
this.[color=Red]bonus[/color] = bonus;
}
public void work()
{
System.out.println("manager work");
}
}
复制代码
含有抽象方法的类不需是抽象类!抽象类不能够被实例化!错误帮你标出来了
作者:
cyh8807
时间:
2013-3-10 17:17
话说我这段代码没有编译过,我的焦点在Employee这个类上面,因为老毕视频中这段代码在这个类中只定义了一个抽象方法,并没有将类定义为抽象的
我的疑问就因此而出,顺手敲出来问下这个问题,至于中间的那些字母错误,恕我粗心
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2