import java.applet.Applet;
import java.awt.*;
import java.util.*;
public class UseAbstract extends Applet {CommonEmployee ComEmp;
ManagerEmployee MgrEmp;
private Label prompt1 = null;
private TextField y1 = null;
private TextField m1 = null;
private TextField d1 = null;
private TextField dd1 = null;
private Label prompt2 = null;
private TextField y2 = null;
private TextField m2 = null;
private TextField d2 = null;
private TextField dd2 = null;/**
* This is the default constructor
*/
public UseAbstract() {
super();
}/**
* This method initializes this

* @return void
*/
public void init() {
prompt2 = new Label();
prompt2.setText("主管的开始工作日期与休假天数:19");
prompt2.setLocation(new java.awt.Point(90,49));
prompt2.setSize(new java.awt.Dimension(209,23));
prompt1 = new Label();
prompt1.setBounds(new java.awt.Rectangle(90,15,208,23));
prompt1.setText("雇员的开始工作日期与休假天数:19");
this.setLayout(null);
this.setSize(597, 200);
this.add(prompt1, null);
this.add(getY1(), null);
this.add(getM1(), null);
this.add(getD1(), null);
this.add(getDd1(), null);
this.add(prompt2, null);
this.add(getY2(), null);
this.add(getM2(), null);
this.add(getD2(), null);
this.add(getDd2(), null);
}/**
* This method initializes y1 

* @return java.awt.TextField 
*/
private TextField getY1() {
if (y1 == null) {
y1 = new TextField();
y1.setBounds(new java.awt.Rectangle(311,15,50,23));
}
return y1;
}/**
* This method initializes m1 

* @return java.awt.TextField 
*/
private TextField getM1() {
if (m1 == null) {
m1 = new TextField();
m1.setLocation(new java.awt.Point(366,15));
m1.setSize(new java.awt.Dimension(50,23));
}
return m1;
}/**
* This method initializes d1 

* @return java.awt.TextField 
*/
private TextField getD1() {
if (d1 == null) {
d1 = new TextField();
d1.setSize(new java.awt.Dimension(50,23));
d1.setLocation(new java.awt.Point(421,15));
}
return d1;
}/**
* This method initializes dd1 

* @return java.awt.TextField 
*/
private TextField getDd1() {
if (dd1 == null) {
dd1 = new TextField();
dd1.setLocation(new java.awt.Point(479,15));
dd1.setSize(new java.awt.Dimension(50,23));
}
return dd1;
}/**
* This method initializes y2 

* @return java.awt.TextField 
*/
private TextField getY2() {
if (y2 == null) {
y2 = new TextField();
y2.setSize(new java.awt.Dimension(50,23));
y2.setLocation(new java.awt.Point(311,50));
}
return y2;
}/**
* This method initializes m2 

* @return java.awt.TextField 
*/
private TextField getM2() {
if (m2 == null) {
m2 = new TextField();
m2.setLocation(new java.awt.Point(366,50));
m2.setSize(new java.awt.Dimension(50,23));
}
return m2;
}/**
* This method initializes d2 

* @return java.awt.TextField 
*/
private TextField getD2() {
if (d2 == null) {
d2 = new TextField();
d2.setSize(new java.awt.Dimension(50,23));
d2.setLocation(new java.awt.Point(421,50));
}
return d2;
}/**
* This method initializes dd2 

* @return java.awt.TextField 
*/
private TextField getDd2() {
if (dd2 == null) {
dd2 = new TextField();
dd2.setSize(new java.awt.Dimension(50,23));
dd2.setLocation(new java.awt.Point(479,50));
}
return dd2;
}public void paint(Graphics g)
{
if(ComEmp.goVacation(Integer.parseInt(dd1.getText())))
g.drawString("This common Employee can enjoy vacation",20,80);
else
g.drawString("What a pity,work more time first!",20,80);
if(MgrEmp.goVacation(Integer.parseInt(dd2.getText())))
g.drawString("This Manager can enjoy vacation",20,100);
else
g.drawString("Too long a vacation,reduce the days!",20,100);
}
public boolean action(Event e,Object o)
{
if(e.target==dd2)
{
ComEmp=new CommonEmployee(
new Date(Integer.parseInt(y1.getText()),
Integer.parseInt(m1.getText()),
Integer.parseInt(d1.getText())));
MgrEmp=new ManagerEmployee(
new DateInteger.parseInt(y2.getText()),
Integer.parseInt(m2.getText()),
Integer.parseInt(d2.getText())));
} //The constructor Date(int,int,int) is deprecated
repaint();
return true;
}} // @jve:decl-index=0:visual-constraint="10,10"abstract class Employee1
{
Date m_StartWorkDate;
abstract boolean goVacation(int days);
}
class CommonEmployee extends Employee1
{
static int m_MinWorkYears=3;
CommonEmployee(Date swd)
{
m_StartWorkDate=new Date(swd.getTime());
}
boolean goVacation(int days)
{
Date now=new Date();
if(now.getYear()-m_StartWorkDate.getYear()>=3&&days<=21) 
//The method getYear() from the type Date is deprecated
return true;
else return false;
}
}
class ManagerEmployee extends Employee1
{
ManagerEmployee(Date swd)
{
m_StartWorkDate=new Date(swd.getTime());
}
boolean goVacation(int days)
{
if(days<=60)
return true;
else return false;
}
}