多态存在的必要条件:
1.继承
2.重写
3.父类引用指向子类对象
多态使用实例
平台:ubuntu14.04,环境:eclipse
Employee类
package com.anson.java;
/**
* 雇员类
* 作为Salary的基类
* @author anson
*
*/
public class Employee {
private String Name=null;
private String Address=null;
private String Number=null;
public Employee()
{
}
/**
* 构造
* @param name
* @param address
* @param number
*/
public Employee(String name,String address,String number)
{
Name=name;
Address=address;
Number=number;
}
/**
* 邮件检查
*/
public void mailCheck()
{
System.out.println("Employee类");
System.out.println("邮票寄给"+this.Name+" , "+this.Address);
}
public String toString()
{
return this.Name+" "+this.Address+" "+this.Number;
}
/**
* 返回姓名
* @return
*/
public String getName()
{
return this.Name;
}
/**
* 设置姓名
* @param Name
*/
public void setName(String Name)
{
this.Name=Name;
}
/**
* 返回地址
* @return
*/
public String getAddrtess()
{
return this.Address;
}
/**
* 设置地址
* @param Address
*/
public void setAddress(String Address)
{
this.Address=Address;
}
/**
* 返回号码
* @return
*/
public String getNubmer()
{
return this.Number;
}
/**
* 设置号码
* @param Number
*/
public void setNubmer(String Number)
{
this.Number=Number;
}
}
Salary类
package com.anson.java;
/**
* 薪酬类继承雇员类
* @author anson
*
*/
public class Salary extends Employee{
private double salary=0;
/**
* 构造
* @param Name
* @param Address
* @param Number
* @param salary
*/
public Salary(String Name,String Address,String Number,double salary)
{
super(Name,Address,Number);
this.salary=salary;
}
public void mailCheck()
{
System.out.println("Salary类");
System.out.println("邮票寄给"+this.getName()+" "+"地址"+this.getAddrtess()+" "+"金额"+this.salary);
}
/**
* 获取薪酬
* @return
*/
public double getSalary()
{
return this.salary;
}
/**
* 设置薪酬
* @param salary
*/
public void setSalary(double salary)
{
this.salary=salary;
}
/**
* 计算支付
* @return
*/
public double computPay()
{
return this.salary/2;
}
}
Test类
package com.anson.java;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee e=new Salary("员工A","上海","0100101",8000);
e.mailCheck();
Salary s=new Salary("员工B","北京","010020301",12000);
s.mailCheck();
}
}
测试结果: