Java基础(18)之类名作为形成和返回值

1. 新参和返回值

1.1 类名作为形成和返回值

在这里插入图片描述
代码示例:

方法的形参是抽象类名

抽象动物类:
定义了一个抽象的eat方法
在这里插入图片描述
动物的操作类:
创建一个useAnimal方法,它的形参是抽象类Animal
在这里插入图片描述
测试类:
在这里插入图片描述
创建操作类对象,并调用方法:
调用方法时,提示我们需要的是Animal类型的实参。往下看
在这里插入图片描述
在操作类中,看到Animal a 也能调用方法,说明a是一个实例对象。
但是Animal是一个抽象类,并不能实例化,这里只能使用多态的形式,所以需要的是它的子类对象,创建它的子类对象然后传递过来。
当子类传递过来时就形成这样:Animal a = new 子类;
在这里插入图片描述
那么就创建一个Animal的子类Cat,并继承它:
在这里插入图片描述
继续写测试类:
通过多态的形式将创建对象a,然后将a传递给useAnimal方法,
形成:Animal a = new Cat();
然后调用eat方法输出“猫吃鱼”
在这里插入图片描述
运行结果:
在这里插入图片描述

方法的返回值是抽象类名

继续编写操作类:
这里将void改为Animal,所以返回的是Animal对象,但是Animal对象是抽象类,不能直接实例化。
所以我们利用多态的形式,返回它的子类。
Animal a = new Cat();

  • 可以得出结论:
    方法的返回值是抽象类名,其实返回的是该抽象类的子类对象

在这里插入图片描述
在测试类中调用:
ao.getAnimal返回的是Animal的子类对象Cat,
就形成了:Animal a2 = new Cat();
在这里插入图片描述
运行结果:
和将抽象类做为新参的结果是一样的。
在这里插入图片描述

1.2 接口名作为新参和返回值

将接口名作为新参和返回值,其实是和抽象类一样的,
只不过接口将子类变成了实现类。
在这里插入图片描述

发布了50 篇原创文章 · 获赞 13 · 访问量 1847

猜你喜欢

转载自blog.csdn.net/qq_43581078/article/details/104451743
今日推荐