Java快速上手之实验4(接口回调)
1.编写接口程序RunTest.java,通过接口回调实现多态性。解释【代码4】和【代码6】的执行结果为何不同?
interface Runable{
void run();
}
class Cat implements Runable{
public void run(){
System.out.println("猫急上树..");
}
}
【代码1】 // 参照Cat类,定义Dog类并实现Runable接口
public void run(){
System.out.println("狗急跳墙..");
}
}
public class RunTest{
public static void main(String[] args){
【代码2】 // 声明Runable接口变量r
【代码3】 // 接口变量r中存放一个Cat对象的引用
【代码4】 // 调用Cat对象的run()方法
System.out.println("-----------");
【代码5】 // 接口变量r中存放一个Dog对象的引用
【代码6】 // 调用Dog对象的run()方法
}
}
// 定义接口
interface Runable {void run(); // 抽象方法
}// 定义Cat类并实现Runable接口
class Cat implements Runable {@Overridepublic void run() {System.out.println("猫急上树..");}
}// 定义Dog类并实现Runable接口
class Dog implements Runable {@Overridepublic void run() {System.out.println("狗急跳墙..");}
}// 测试类
public class RunTest {public static void main(String[] args) {// 【代码2】声明Runable接口变量rRunable r;// 【代码3】接口变量r中存放一个Cat对象的引用r = new Cat();// 【代码4】调用Cat对象的run()方法r.run();System.out.println("-----------");// 【代码5】接口变量r中存放一个Dog对象的引用r = new Dog();// 【代码6】调用Dog对象的run()方法r.run();}
}