• 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 接口名作为形参和返回值

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

  • 相关阅读:
    中国开源现状如何?
    程序员怎么升职?
    如何从挫败感到成就感,身为程序员每天都在经历这些!
    现实版“无间道”,4名煞星潜伏,只为拖库!
    想想当初为什么做程序员!
    做程序员累的时候想想这个!
    别人问我:为什么程序员都不善言辞?惭愧啊!
    程序员被沦陷!国内程序员真的饱和了?
    JS和JSP的区别?
    web.xml配置WebApplicationContext的两种方法
  • 原文地址:https://www.cnblogs.com/ajing2018/p/14668895.html
Copyright © 2020-2023  润新知