interface People {
void peopleList();
}
class Student implements People {
public void peopleList() {
System. out .println( "I’m a student." );
}
}
class Teacher implements People {
public void peopleList() {
System. out .println( "I’m a teacher." );
}
}
public class Example {
public static void main(String args[]) {
People a; // 声明接口变量
a = new Student(); // 实例化,接口变量中存放对象的引用
a.peopleList(); // 接口回调
a = new Teacher(); // 实例化,接口变量中存放对象的引用
a.peopleList(); // 接口回调
}
}
二、向上转型与接口回调的区别
向上转型是对象之间转型,与接口回调形式相似担心本质不一样。
从实现了某接口的对象,获得对此接口的引用,与向上转型为这个对象的基类,实质上效果是同样的。这些对象均可以调用基类型提供的方法,对于接口来讲就是回调接口中的方法,对于父类来讲就是调用父类的方法。固然在向上转型的状况下,还牵涉到子类重写(
Override
)父类方法的情形。