java协变返回类型

协变返回类型 (Covariant return type)

The covariant return type is that return type which may vary in parent and child class (or subclass).

协变量返回类型是该返回类型,在父类和子类(或子类)中可能有所不同。

Before JDK5 java does not support covariant return type it means (parent return type and child return must be same).

在JDK5 Java不支持协变返回类型之前,这意味着(父返回类型和子返回必须相同)。

In JDK5 onwards java supports covariant return type it means (parent return type and child return can vary if we define).

从JDK5开始,Java支持协变返回类型 (如果我们定义,则父返回类型和子返回可以不同)。

The covariant return type is useful in method overriding when we override a method in the derived class (or subclass) then return type may vary depending on JDK (Before JDK5 return type should be same and after or JDK5 we can consider return type can vary).

当我们重写派生类(或子类)中的方法时, 协变量返回类型在方法重写中很有用,然后返回类型可能会因JDK而异(在JDK5返回类型应该相同之前,或者在JDK5之后,我们可以考虑返回类型可以变化) 。

Example -1

例子-1

class ParentClass1{int a=10,b=20;
public int sum(){return a+b;
}
}
class ChildClass1 extends ParentClass1{int c=30, d=40;
public int sum(){return (c+d);
}
public static void main(String[] args){ChildClass1 cc1 = new ChildClass1();
ParentClass1 pc1 = new ParentClass1();
int e = cc1.sum();
int f = pc1.sum();
System.out.println("Child class Sum is :"+e);
System.out.println("Parent class Sum is :"+f);
}
}

Output

输出量

D:\Java Articles>java ChildClass1
Child class Sum is :70
Parent class Sum is :30
.minHeight{ min-height: 250px; } @media (min-width: 1025px){ .minHeight{ min-height: 90px; } } .minHeight{ min-height: 250px; } @media (min-width: 1025px){ .minHeight{ min-height: 90px; } }

Example -2

示例-2

class ParentA {}
class ChildB extends ParentA {}
class Base
{ParentA demoA()
{System.out.println("Base class demo");
return new ParentA();
}
}
class Subclass extends Base
{ChildB demoB()
{System.out.println("Subclass demoB");
return new ChildB();
}
}
class MainClass
{public static void main(String args[])
{Base b = new Base();
b.demoA();
Subclass sub = new Subclass();
sub.demoB();
}
}

Output

输出量

D:\Java Articles>java MainClass
Base class demo
Subclass demoB

翻译自: https://www.includehelp.com/java/covariant-return-type.aspx

java协变返回类型

java协变返回类型_Java中的协变返回类型相关推荐

  1. java return返回值_java中关于return返回值的用法详解

    我们输入一个条件时,系统就会对这个条件进行判断,然后给出一个返回时的结论,我们把这个结果看做是返回值.在java里可以使用return语句来进行返回,从字面意思就能很好的理解它的用法了.下面我们就re ...

  2. java 可变 不可变_java中的不可变类型的探究

    不可变类是指创建类的对象实例后,该实例的属性不能发生改变.常见的String就是不可变类.不可变类型的属性值不会发生改变,这在多线程编程的时候非常有用,不用担心对象的属性值被修改. 下面我们来看看如何 ...

  3. java中输入char类型_java中如何输入char类型

    java中基本数据类型的输入包括整形的输入:in.nextInt();单精度浮点型:in.nextFloat();双精度浮点型:in.nextDouble();字符串类型:in.next();in.n ...

  4. date在java中是什么类型_java中date 是什么类型

    满意答案 1engwen 2016.08.20 采纳率:41%    等级:8 已帮助:1115人 java语言中的date类介绍及使用 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于 ...

  5. java string字节大小_Java中char[] 和 String 类型占用字节大小问题

    作者:威威喵 原文链接:https://blog.csdn.net/smile_Running/article/details/87211916 在 C 语言中 1.char a[10] = {&qu ...

  6. java中小数类型_java中小数属于什么类型的数据

    展开全部 小数属于浮点型(默认为double). 浮点型代表的是实数,其实就是包含小数的部分.也知道现实世界中是由32313133353236313431303231363533e59b9ee7ad9 ...

  7. java比较时间戳大小_JAVA中两个String类型的时间戳怎么样比较大小?

    1.从数据库里面获得的时间戳是String类型的,要与当前时间比较,判断登陆是否过期 生成一long类型的当前时间,把String类型强制转换成long类型报错,代码如下: long currentT ...

  8. java for循环返回值_Java中的for循环——通过示例学习Java编程(9)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=21 循环用于反复执行同一组语句,直到满足特定条件为止 ...

  9. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

最新文章

  1. Spring Boot + thymeleaf 实现文件上传下载
  2. 无中生有 : 对称方波中的二次谐波
  3. c语言中的数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。
  4. 二叉树的基本特性和二叉树的几种基本操作的机制_深入理解二叉树01 二叉树基础
  5. Git标签tag及tag远程同步
  6. Python3与OpenCV3.3 图像处理(一)--环境搭建与简单DEMO
  7. 【编撰】linux IPC 001 - 概述
  8. linux c 大全,linux c 程序设计大全(吴岳) 求助
  9. svn的安装包和中文语言包下载
  10. JxBrowser的概述与简单应用
  11. 模拟退火算法(SA)
  12. AlphaGo算法论文 神经网络加树搜索击败李世石
  13. Error:配置系统未能初始化
  14. idea隐藏菜单栏Main Menu 恢复方法
  15. 加息对股市影响|加息会有什么后果
  16. 单个html页面面包屑,充分利用网页设计中的面包屑
  17. 虚幻引擎4总是遇到崩溃卡顿情况,这8个方法一定要试试
  18. 树莓派CM4_5G扩展板搭载展锐国货5G在Kali系统下免驱即插即用演示
  19. Centos7 Snapper快照备份
  20. java操作excel的工具

热门文章

  1. python设计一个动物类_我用Python实现了12500张猫狗图像的精准分类
  2. java语言错误的是解释运行的_Java基础知识测试__A卷_答案
  3. python 趣味编程课_青少年编程:Python趣味编程基础入门课程
  4. deepl windows_推荐一个为程序员深度开发的翻译插件DeepL
  5. 2021 最新 IDEA集成Gitee、Gitee迁移GitHub【图文讲解】
  6. 常用的loss函数,以及在训练中的使用
  7. redis核心技术与实战(四)高可用高扩展篇
  8. Qt自定义QML模块
  9. snort的详细配置
  10. 传统存储做到极致也惊人!看宏杉科技发布的CloudSAN