JAVA协变返回类型

协回返回类型表示:在导出类中覆盖基类的方法,可以返回基类方法的返回类型的某种导出类。 看一下例子

class zoo {

}


class animal {
    zoo speak() {
        return new zoo();
    }
}

class tiger extends zoo {

}


class panda extends animal {
    @Override
    tiger speak() {
        return new tiger();
    }
}

panda继承了animal,并且重写了speak()方法,父类的speak()方法的返回值类型是zoo,而子类重写speak()方法的返回值却是tiger,因为tiger继承了zoo,所以编译器不会报错。因而也是一种合法的返回类型。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Go 语言循环语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。 以下为大多编程语言循环程序的流程图: ? Go 语言提供了以下几种类型循环处...

3737
来自专栏武军超python专栏

2018年9月9日正则表达式随堂记

*********************** 今天遇到的新单词: element n元素,要素 multibyte n多字节 sequence n数列...

1194
来自专栏程序员互动联盟

【java基础】Java中instanceof关键字的理解

java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或...

3499
来自专栏desperate633

深入理解Java中静态初始化块

在Java中,有两种初始化块:静态初始化块和非静态初始化块。它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字。

922
来自专栏黑泽君的专栏

java语言反射的概述以及三种获取字节码文件对应的Class类型的对象的方式

反射的概述:   JAVA反射机制是在运行状态中,   对于任意一个类,都能够知道这个类的所有属性和方法(动态获取的信息);   对于任意一个对象,...

3373
来自专栏C/C++基础

C++中基类私有成员会被继承吗

在类的继承中,类的私有成员在派生类中是“不可见“的,这种”不可见“是指在派生类的成员函数中,或者通过派生类的对象(指针,引用)不能直接访问它们。但是,不能直接访...

862
来自专栏Rgc

python中赋值,深拷贝,浅拷贝区别

这三种不适合 int,str,float,bool等类型。因为这些类型在值改变后,被赋值的变量值不变。

2332
来自专栏web前端-

JS函数

      function 函数名()       {         这里是要执行的代码      }

882
来自专栏java一日一条

java语言核心----面向对象之this关键字

832
来自专栏java一日一条

java语言核心----面向对象之this关键字

903

扫码关注云+社区

领取腾讯云代金券