package we;
interface Person{//定义接口Person
public abstract void Identity();//定义方法Identity()
}
class Student implements Person{//定义类Student实现接口Person,并重写方法Identity()
public void Identity() {
System.out.println("人员的身份:学生");
}
}
class Teacher implements Person{//定义类Teacher实现接口Person,并重写方法Identity()
public void Identity() {
System.out.println("人员的身份:教师");
}
}
class PersonMessage{定义类Task
public void showMessage(Person person) {//接口Person作为方法的参数类型
person.Identity();//接口Person作为方法showMessage()的参数类型
}
}
public class hu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student = new Student();//创建学生对象
Teacher teacher = new Teacher();//创建老师对象
PersonMessage teacherMs = new PersonMessage();
student.Identity();将表示接口的实参teacher传给方法showMessage()
teacherMs.showMessage(teacher);
}
}
知识点:
在类PersonMessage中定义的方法showMessage()以接口person作为形参类型定义了一个变量person,当类的personMessage的方法showMessage()被调用时,方法会将属于person接口类的对象teacher作为实参进行传递
结果如下:
心得体会:
从此程序中可以得到接口实质是一组方法和常量的集合,接口中的方法只有方法声明,没有方法体。Java中通过关键字interface来定义接口,在类中通过implements来实现接口,实现接口的类必须对接口中的所有方法进行方法重写。接口解决了Java语言不能实现多继承的问题。