黑马程序员技术交流社区
标题:
抽象函数的一点问题
[打印本页]
作者:
张迁
时间:
2013-4-29 21:55
标题:
抽象函数的一点问题
抽象类可以被很多类继承,有没有可能这样一种情况,我在抽象类里面写一个带对象参数的抽象方法,如下代码所示,请问可以实现吗??可以实现的话,这个类参数该怎写呢?
class Demo6 {
public static void main(String[] args) {
Programmer p = new Programmer("asd","123",8000);
p.work();
Manager m =new Manager("zxc","456",20000,5000);
m.work();
}
}
abstract class Employee{
private String name;
private String id;
private int pay;
private int bonus;
public abstract void work(类参数);
Employee(){};
Employee(String name,String id,int pay){
this.name = name;
this.id = id;
this.pay = pay;
};
Employee(String name,String id,int pay,int bonus){
this.name = name;
this.id = id;
this.pay = pay;
this.bonus = bonus;
};
public String getName(){
return name;
}
public String getId(){
return id;
}
public int getPay(){
return pay;
}
public int getBonus(){
return bonus;
}
public void speak(){
if(bonus == 0)
System.out.println("我是"+name+",我的ID是"+id+"我的工资是:"+pay+",我没有奖金。");
else
System.out.println("我是"+name+",我的ID是"+id+"我的工资是:"+pay+"奖金是:"+bonus);
}
}
class Programmer extends Employee{
Programmer(){};
Programmer(String name,String id, int pay){
super(name,id,pay);
};
public void work(类参数){
System.out.println("我是程序员,我的工作是编程!");
类.speak();
}
}
class Manager extends Employee{
Manager(){};
Manager(String name,String id,int pay,int bonus){
super(name,id,pay,bonus);
};
public void work(类参数){
System.out.println("我是经理,我的工作是管理!");
类.speak();
}
}
复制代码
抽象类可以被很多类继承,有没有可能这样一种情况,我在抽象类里面写一个带对象参数的抽象方法,如下代码所示,请问可以实现吗??可以实现的话,这个类参数该怎写呢?
作者:
邹晓慧
时间:
2013-4-29 23:04
=-= 你好像和我就是一个班的说
类可以作为参数传递,你这个代码我没改成功,不过类作为形参传递成功了
构造函数的大括号结尾应该是不能加分号的吧·····
class Demo6 {
public static void main(String[] args) {
Programmer p = new Programmer("asd","123",8000);
CeShi cs = new CeShi();
p.work(cs);
Manager m =new Manager("zxc","456",20000,5000);
m.work(cs);
}
}
[color=Red]//这个类是我新建的,就是为了测试看看能不能传递。感觉这个和对象传递很像,就像老师之前举例子说两个人比较年龄,传递的是Person的对象,而不是直接传//递age
class CeShi {[/color]
public void speak(){
// if(bonus == 0)
// System.out.println("我是"+getName()+",我的ID是"+getId()+"我的工资是:"+getPay()+",我没有奖金。");
// else
// System.out.println("我是"+getName()+",我的ID是"+getId()+"我的工资是:"+getPay()+"奖金是:"+getBonus());
System.out.println("22222222222");
}
}
abstract class Employee{
private String name;
private String id;
private int pay;
private int bonus;
public abstract void work(CeShi cs);
Employee(){}
Employee(String name,String id,int pay){
this.name = name;
this.id = id;
this.pay = pay;
}
Employee(String name,String id,int pay,int bonus){
this.name = name;
this.id = id;
this.pay = pay;
this.bonus = bonus;
}
public String getName(){
return name;
}
public String getId(){
return id;
}
public int getPay(){
return pay;
}
public int getBonus(){
return bonus;
}
}
class Programmer extends Employee{
Programmer(){}
Programmer(String name,String id, int pay){
super(name,id,pay);
}
public void work(CeShi cs){
System.out.println("我是程序员,我的工作是编程!");
cs.speak();
}
}
class Manager extends Employee{
Manager(){}
Manager(String name,String id,int pay,int bonus){
super(name,id,pay,bonus);
}
public void work(CeShi cs){
System.out.println("我是经理,我的工作是管理!");
cs.speak();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2