zoukankan      html  css  js  c++  java
  • 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 接口名作为形参和返回值

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

  • 相关阅读:
    对Asp.Net MVC架构的用后感想
    [推荐]MSDN WebCast课程下载工具
    Web系统中关于Postback与页面离开的分辨
    父爱
    Silverlight+RIA Service Required验证失效问题的解决方案
    心情
    IIS32位,64位模式下切换
    每天都要保持编码的习惯
    2008年至今较难忘的一天
    使用SVN+C#.NET保持多台机器的文件同步
  • 原文地址:https://www.cnblogs.com/ajing2018/p/14668895.html
Copyright © 2011-2022 走看看