Java基础00-形参和返回值22

1. 形参和返回值

1.1 类名作为形参和返回值

1.2 抽象类名作为形参和返回值

代码示例:

方法的形参是抽象类名

抽象动物类:
定义了一个抽象的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.3 接口名作为形参和返回值

将接口名作为形参和返回值,其实是和抽象类一样的,
只不过接口将子类变成了实现类。

posted on 2021-04-16 21:50  花溪月影  阅读(51)  评论(0编辑  收藏  举报