接口是一种程序结构,是特殊的抽象类。接口中的方法必须都是公开的抽象方法(public abstract),接口中的属性都是公开静态常量(public static final)。
接口也可以继承,但是只能由接口继承,在用类去继承时要换用 implements 关键字,这时类和接口也不叫做继承关系,而是实现关系,但其实质也是继承。
一个类可以继承也只能继承另外一个类,但是可以实现多个接口,其语法是在implements后面写接口名,多个接口以“,”分隔。
接下来一个例子说明:
① 设计学生信息管理接口StudentManageInterface。其中包括setFee()方法和getFee()方法,分别用于设置和获取学生的每学期的学费,假设每学期的学费为整数;② 设计教师信息管理接口TeacherManageInterface。其中包括setPay()方法和getPay()方法,分别用于设置和获取教师的月工资,假设月工资为整数;③ 设计在职研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它的成员变量有name(姓名)、sex(性别)、fee(每学期学费)、pay(月工资);④ 创建一个姓名为“张翠花”的女研究生,统计他的年收入和学费,如果每年的收入减去学费开销不足20000元,则输出“需要贷款!”的信息。
设计学生信息管理接口StudentManageInterface
设计教师信息管理接口TeacherManageInterface。
在职研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它的成员变量有name(姓名)、sex(性别)、fee(每学期学费)、pay(月工资);
它的成员变量有name(姓名)、sex(性别)、fee(每学期学费)、pay(月工资);
实现接口里的方法
创建一个姓名为“张翠花”的女研究生,统计他的年收入和学费,如果每年的收入减去学费开销不足20000元,则输出“需要贷款!”的信息。
结果
以下为代码
interface StudentManageInterface{
void setFree(int tuition);
int getFee();
void setFee(int tuition);
int getFree();
}
interface TeacherManageInterface{
void setPay(int salary);
int getPay();
}
class Graduate implements StudentManageInterface, TeacherManageInterface {
private String name;
private String sex;
private int fee;
private int pay;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public int getFee() {
return fee;
}
@Override
public void setFee(int tuition) {
this.fee = tuition;
}
@Override
public int getPay() {
return pay;
}
@Override
public void setPay(int salary) {
this.pay = salary;
}
public String getMessage(){
if((pay*12-fee)>20000){
return "这名研究生的名字是:"+name+",性别是:"+sex+",今年的学费是:"+fee+",年工资是:"+12*pay+",不需要贷款!";
}
return "这名研究生的名字是:"+name+",性别是:"+sex+",今年的学费是:"+fee+",年工资是:"+12*pay+",需要贷款!";
}
@Override
public void setFree(int tuition) {
// TODO Auto-generated method stub
}
@Override
public int getFree() {
// TODO Auto-generated method stub
return 0;
}
}
public class sy4_2 {
public static void main(String[] args) {
Graduate graduate = new Graduate();
//设置姓名
graduate.setName("张翠花");
//设置性别
graduate.setSex("女");
//设置每月工资
graduate.setPay(2500);
//设置每月学费
graduate.setFee(15000);
System.out.println(graduate.getMessage());
}
}