案例介绍:
创建父类:
abstract class Person{//定义抽象公司人员类
private String name;//姓名
private String ID;//工号
private double salary;//月薪
private int age;//工龄
public Person(String name,String ID,double salary,int age)
{
this.name=name;
this.ID=ID;
this.salary=salary;
this.age=age;
}
public void setName(String name)
{
this.name = name;
}
public void setID(String ID)
{
this.ID = ID;
}
public void setSalary(double salary)
{
this.salary = salary;
}
public void setAge(int age)
{
this.age = age;
}
public String getName()
{
return name;
}
public String getID()
{
return ID;
}
public double getSalary()
{
return salary;
}
public int getAge()
{
return age;
}
abstract void add();//定义抽象涨薪方法
}
创建子类继承抽象类:
class Employees extends Person{//定义员工类,继承Person类
public Employees(String name,String ID,double salary,int age)
{
super(name, ID, salary, age); //调用父类属性
}
public void add()//员工涨薪10%
{
double s=super.getSalary();
super.setSalary(s*1.1);
}
}
class Manager extends Person{//定义经理类,继承Person类
public Manager(String name,String ID,double salary,int age)
{
super(name, ID, salary, age); //调用父类属性
}
public void add()//经理涨薪20%
{
double s=super.getSalary();
super.setSalary(s*1.2);
}
}
定义测试类:
public class test {
public static void main(String[] args){
Employees employees=new Employees("小王","001",5000,2);//创建Employees类的实例对象
Manager manager=new Manager("小张","101",10000,5);//创建经理类的实例对象
System.out.println("涨薪前:");
System.out.println("员工"+employees.getName()+"的月薪是:"+employees.getSalary());
System.out.println("经理"+manager.getName()+"的月薪是:"+manager.getSalary());
employees.add();//调用Employees类的add()方法
manager.add();//调用Manager类的add()方法
System.out.println("涨薪后:");
System.out.println("员工"+employees.getName()+"的月薪是:"+employees.getSalary());
System.out.println("经理"+manager.getName()+"的月薪是:"+manager.getSalary());
}
}
完整代码:
abstract class Person{//定义抽象公司人员类
private String name;//姓名
private String ID;//工号
private double salary;//月薪
private int age;//工龄
public Person(String name,String ID,double salary,int age)
{
this.name=name;
this.ID=ID;
this.salary=salary;
this.age=age;
}
public void setName(String name)
{
this.name = name;
}
public void setID(String ID)
{
this.ID = ID;
}
public void setSalary(double salary)
{
this.salary = salary;
}
public void setAge(int age)
{
this.age = age;
}
public String getName()
{
return name;
}
public String getID()
{
return ID;
}
public double getSalary()
{
return salary;
}
public int getAge()
{
return age;
}
abstract void add();//定义抽象涨薪方法
}
class Employees extends Person{//定义员工类,继承Person类
public Employees(String name,String ID,double salary,int age)
{
super(name, ID, salary, age); //调用父类属性
}
public void add()//员工涨薪10%
{
double s=super.getSalary();
super.setSalary(s*1.1);
}
}
class Manager extends Person{//定义经理类,继承Person类
public Manager(String name,String ID,double salary,int age)
{
super(name, ID, salary, age); //调用父类属性
}
public void add()//经理涨薪20%
{
double s=super.getSalary();
super.setSalary(s*1.2);
}
}
//定义测试类
public class test {
public static void main(String[] args){
Employees employees=new Employees("小王","001",5000,2);//创建Employees类的实例对象
Manager manager=new Manager("小张","101",10000,5);//创建经理类的实例对象
System.out.println("涨薪前:");
System.out.println("员工"+employees.getName()+"的月薪是:"+employees.getSalary());
System.out.println("经理"+manager.getName()+"的月薪是:"+manager.getSalary());
employees.add();//调用Employees类的add()方法
manager.add();//调用Manager类的add()方法
System.out.println("涨薪后:");
System.out.println("员工"+employees.getName()+"的月薪是:"+employees.getSalary());
System.out.println("经理"+manager.getName()+"的月薪是:"+manager.getSalary());
}
}