如果一个方法的参数是接口类型,则在调用该方法时,需要创建并传递一个实现此接口类型的对象;而该方法在运行时会调用到参数对象中所实现的方法(接口中定义的)
举一反三
- 如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。
- 如果一个方法的参数是( )类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数。 A: 对象 B: 接口 C: 抽象方法 D: 实例方法
- 把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的______ 。
- 关于线程的创建过程,下面四种说法正确的有哪些?(多选) A: 定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法 B: 定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法 C: 定义一个实现Runnable接口的类并实现run()方法,创建该类实例对,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法 D: 定义一个实现Runnable接口的类并实现run()方法,创建该类对象,然后调用run()方法
- 编写一个接口Animal,接口中定义speak()方法,编写两个实现类Cat和Pig分别实现接口Animal,再编写一个测试类实现对象的类型转换。具体要求如下: (1)编写Animal接口,接口中定义speak()方法。 (2)Cat类和Pig类分别实现Animal接口的方法,且在Cat类中定义方法catchMouse(),在Pig类中定义方法eat(); (3)编写测试类,在测试类中定义一个静态方法action(Animal a),该方法没有返回值,在该方法中分析a,如果a是Cat的实例,则调用它的catchMouse()方法,如果a是Pig的实例,则调用eat()方法; (4)在测试类的main方法中定义两个Animal对象a1、a2,分别创建Cat和Pig对象对其赋值,调用Animal对象的speak()方法,调用两次静态方法action(分别将a1和a2作为参数进行传递,在方法内根据Animal对象的实际类型调用对象的特有方法。