1.类名作为形式参数&返回值类型;
类名作为形式参数,即一个方法的形参要的是类 类型,就传类的一个对象(extends)。
类名作为返回值,即一个方法的返回值要的是类 类型,就返回类的一个对象。
2.抽象名作为形式参数&返回值类型;
抽象名作为形式参数,即一个方法的形参要的是抽象类 类型,就传该抽象类的子类的一个对象(extends)。
抽象名作为返回值,即一个方法的返回值要的是抽象类 类型,就返回抽象类的子类的一个对象。
3.接口名作为形式参数&返回值类型。
接口名作为形式参数,即一个方法的形参要的是接口类 类型,就传该接口类的子类的一个对象(implements)。
类名作为返回值,即一个方法的返回值要的是接口类 类型,就返回该接口类的子类的一个对象。
举例:
public class MyTest3 {
public static void main(String[] args) {
EE ee = new EE();
EE face = (EE) show("加菲猫", ee);//强制类型转换成子类,
System.out.println(ee.name);
System.out.println(face.name);
System.out.println(Iinterface.name);
}
public static Iinterface show(String name, Iinterface iinterface) {
EE ee = new EE();
ee.name = name;
return ee;
}
}
interface Iinterface {
String name = "Tom";
public Iinterface getInstance(Iinterface iinterface, String name);
}
class EE implements Iinterface {
String name = "Jerry";
@Override
public Iinterface getInstance(Iinterface iinterface, String name) {
EE ee = new EE();
ee.name = "haha";
return ee;
}
}
执行结果如下: