java 抽象类的小练习
定义一个类是员工,员工有id和name属性,有一个方法是eat调用eat所有员工输出吃饭,有一个抽象方法是work,不同的员工工作的内容不同,定义3个类,程序员, 老师,网管,分别调用work的时候”id为xx的name写代码”,”讲课”,”拉网线”
package com.zy;
/*
* 定义一个类是员工,员工有id和name属性,有一个方法是eat调用eat所有员工输出吃饭,
* 有一个抽象方法是work,不同的员工工作的内容不同,
* 定义3个类,程序员, 老师,网管,分别调用work的时候”
* id为xx的name写代码”,”讲课”,”拉网线”
*/
//父类
public abstract class Emp {
String name;
int id;
//生成set/get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
//有参/无参的构造
public Emp(String name, int id) {
super();
this.name = name;
this.id = id;
}
public Emp() {
super();
// TODO Auto-generated constructor stub
}
//共有的方法 吃饭
public void eat() {
System.out.println("吃饭");
}
//抽象的方法 关键字 abstract
public abstract void work();
}
package com.zy;
/*
* 程序员
* 写代码
*/
public class Cxu extends Emp {
public Cxu() {
super();
// TODO Auto-generated constructor stub
}
@Override
public void work() {
System.out.println("写代码");
}
}
package com.zy;
/*
* 老师
* 讲课
*/
public class Teacher extends Emp {
public Teacher() {
super();
// TODO Auto-generated constructor stub
}
public Teacher(String name, int id) {
super(name,id);
}
@Override
public void work() {
System.out.println("教课");
}
}
package com.zy;
/*
* 网管
* 拉网线
*/
public class Wg extends Emp{
@Override
public void work() {
System.out.println("拉网线");
}
}
package com.zy;
public class TestEmp {
public static void main(String[] args) {
//创建实例对象
//程序员
Cxu cxu=new Cxu();
cxu.setId(23);
cxu.setName("刘华");
System.out.println("姓名 :"+cxu.getName()+"\t"+"\t"+"id :"+cxu.getId());
cxu.work();
//老师
Teacher teacher=new Teacher("小明", 54);
System.out.println("姓名 :"+teacher.getName()+"\t"+"\t"+"id :"+teacher.getId());
teacher.work();
//网管
Wg wg=new Wg();
wg.setName("郭德纲");
wg.setId(666);
System.out.println("姓名 :"+wg.getName()+"\t"+"id :"+wg.getId());
wg.work();
}
}