请编写一个程序,以演示抽象类和接口。

请编写一个程序,以演示抽象类和接口。定义一个Employee(雇员)基类,使其包含name(姓名)和salary(年薪)属性以及print()方法,定义IPromotab... 请编写一个程序,以演示抽象类和接口。定义一个Employee(雇员)基类,使其包含name(姓名)和salary(年薪)属性以及print()方法
,定义IPromotable(晋升)和IGoodEmployee(优秀员工)两个接口,使它们都包含promote()(提升)方法,根据员工的类别确定是否得到晋升。从
Employee类派生出Intern(实习生)类,使其包含
存储periodOfInternship(实习期)的属性。从Employee类和IPromotable接口派生出Programmer(程序员)类,从Employee类以及IGoodEmployee
和IPromotable接口派生出Manager(经理)类,Programmer派生类具有averageOT(平均加班时间)属性,Manager派生类具有secretaryName(助理
姓名)属性。Manager(经理)类和Programmer(程序员)类均实现promote()(提升)方法。
展开
 我来答
老冯文库
2011-05-24 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部
Java源代码:

//演示类
public class Demo {
public static void main(String[] args) {
Employee emp; //抽象类对象
IPromotable prog; //接口对象

emp = new Intern("张三其", 3000, 3);
emp.print();
System.out.println();

prog = new Programmer("张三其", 5400, 30);
((Employee)prog).print();
prog.promote();
System.out.println();

prog = new Manager("张三其", 8000, "李师煊");
((Employee)prog).print();
prog.promote();
System.out.println();
}
}

//抽象雇员基类
abstract class Employee{
protected String name; //姓名
protected int salary; //年薪

abstract void print();
}

//晋升接口
interface IPromotable{
void promote();
}

//优秀员工接口
interface IGoodEmployee{
void promote();
}

//实习生类
class Intern extends Employee{
protected int periodOfInternship; //实习期

public Intern(String name, int salary, int periodOfInternship){
this.name = name;
this.salary = salary;
this.periodOfInternship = periodOfInternship;
}

@Override
public void print() {
System.out.println("实习生信息:");
System.out.println("姓名:" + this.name);
System.out.println("年薪:" + this.salary);
System.out.println("实习期(月):" + this.periodOfInternship);
}
}

//程序员类
class Programmer extends Employee implements IPromotable{
protected int averageOT; //平均加班时间

public Programmer(String name, int salary, int averageOT){
this.name = name;
this.salary = salary;
this.averageOT = averageOT;
}

@Override
public void promote() {
System.out.println("您当前的职务是程序员,即将晋升为经理!");
}

@Override
public void print() {
System.out.println("程序员信息:");
System.out.println("姓名:" + this.name);
System.out.println("年薪:" + this.salary);
System.out.println("平均加班时间(小时/月):" + this.averageOT);
}
}

//经理类
class Manager extends Employee implements IGoodEmployee, IPromotable{
protected String secretaryName; //助理姓名

public Manager(String name, int salary, String secretaryName){
this.name = name;
this.salary = salary;
this.secretaryName = secretaryName;
}

@Override
public void promote() {
System.out.println("您已经是经理了,不能马上获得晋升!");
}

@Override
public void print() {
System.out.println("经理信息:");
System.out.println("姓名:" + this.name);
System.out.println("年薪:" + this.salary);
System.out.println("助理姓名:" + this.secretaryName);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式