黑马程序员技术交流社区
标题:
方法的参数和返回值都是引用数据类型
[打印本页]
作者:
大蓝鲸Java
时间:
2019-7-12 12:28
标题:
方法的参数和返回值都是引用数据类型
1,类名作为形参和返回值
方法要什么,我们就得给什么。
方法返回什么,我们就得拿什么去接收。
总结:
当方法的形参是一个类名时。
可以传递这个类的对象
还可以传递这个类所有的子类对象。
当方法的返回值是一个类时。
咱们就必须使用这个类的类型变量去接收。
案例:
public static void main(String[] args) {
Ye y = new Ye(); //0x0011
Fu f = new Fu(); //0x0022
Zi z = new Zi(); //0x0033
method(f);//要什么类型就给什么类型。
//相当于是把f记录的地址值0x0022作为实际参数给方法传递
//实际参数传递给方法的时候,就被形参给接收了。
//相当于:Fu fu = 0x0022
//而0x0022又是Fu的对象
//代码相当于 Fu fu = new Fu();
method(z);//
//相当于把z记录的地址值作为实际参数给方法传递
//实际参数传递给方法的时候,就被形参给接收了。
//相当于 Fu fu = 0x0033
//代码相当于: Fu fu = new Zi(); //多态
method(y);
//相当于把y记录的地址值作为实际参数给方法传递
//实际参数传递给方法的时候,就被形参给接收了。
//相当于 Fu fu = 0x0011
//代码相当于 : Fu fu = new Ye();
//此时没有这种写法,把一个大的类型,赋值给一个小的类型,肯定就错误了。
}
public static void method(Fu fu){
}
}
class Ye{}
class Fu extends Ye{}
class Zi extends Fu{}
,2.抽象类作为形参和返回值
总结:
方法要什么,我们就得给什么。
方法返回什么,我们就得拿什么去接收。
当一个方法的形参是一个抽象类时,我们只能传递这个抽象类子类的对象。
当一个方法的返回值是一个抽象类时,实际返回的是这个类的子类对象,我们需要用抽象类的类型变量去接收。
3.接口名作为形参和返回值
总结:
方法要什么,我们就得给什么。
方法返回什么,我们就得拿什么去接收。
当一个方法的形参是一个接口时,我们只能传递这个接口的实现类对象。
当一个方法的返回值是一个接口时,实际返回的是这个接口的实现类对象,我们需要用接口类型的变量去接收。
对以上方法的形参和返回值是类名,抽象类名,接口名作一个简单的总结:
返回值:
方法返回什么,我们就用什么类型的变量去接收。
形参:
传递给方法对象的类型 要小于等于 形参的类型。
类:类本身的对象,类的子类对象 (小于等于)
抽象类:抽象类的子类对象(小于)
接口:实现类的对象(小于)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2