187-3 接口作为形参和返回值
| 类名作为形参和返回值 | |
| 类名作形参 | 其实需要的是该类的对象 |
| 类名作返回值 | 其实返回的是该类的对象 |
| 抽象类作为形参和返回值 | |
| 抽象类作形参 | 其实需要的是该抽象类的子类对象 |
| 抽象类作返回值 | 其实返回的是该抽象类的子类对象 |
| 接口作为形参和返回值 | |
| 接口作形参 | 其实需要的是该接口的实现类对象 |
| 接口作返回值 | 其实返回的是该接口的实现类对象 |
myArgs
itheima03
(Interface)Jumppping
JumppingDemo
JumppingOperator
--------------------------------------------------------------
package itheima03E187;
public class Cat implements Jumpping{
@Override
public void jump() {
System.out.println("187/猫猫跳高");
}
}
--------------------------------------------------------------
package itheima03E187;
public interface Jumpping {
void jump();
}
--------------------------------------------------------------
package itheima03E187;
public class JumppingDemo {
public static void main(String[] args) {
//创建JumppingOperator类的对象,调用方法
JumppingOperator jo = new JumppingOperator();
//Jummping是接口,不能直接创建对象并调用,要通过Jumpping的实现类Cat创建对象,然后调用
Jumpping j = new Cat();
jo.useJumpping(j);
//通过getJumpping方法创建对象
//相当于Jumpping j2 = new Cat()
Jumpping j2 = jo.getJumpping();//
//
j2.jump();
}
}
--------------------------------------------------------------
package itheima03E187;
public class JumppingOperator {
public void useJumpping(Jumpping j){//Jumpping j = new Cat()
//编译看左边,执行看右边
//编译看Jumpping,内含jump方法,可以
//执行看Cat,Cat内含jump方法重写,可以
j.jump();
}
//以下是以接口Jumpping为返回值的实例化(创建对象+调用方法)
//接口不可实例化,故先以实现类Cat创建对象,然后调用方法
public Jumpping getJumpping(){
Jumpping j = new Cat();
return j;
}
}



