如果我在实现一个泛型接口是不指明类型默认是什么类型?

如果我在实现一个泛型接口是不指明类型默认是什么类型?

例如
class ThirdThread implements Callable{
public String call(){}

通过

Callable a = new ThirdThread();
实例化,运行下来还是输出了字符串没有报错,这中间存在类型转换嘛?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,同学的意思是说:实现接口时并未指定泛型类型,但重写的call()方法却可以是String类型吗?

如果是,是因为不指定泛型类型时,重写call()方法时默认是Object类型,由于Object类是所有类的父类,所以这里为String也是可以的。

http://img1.sycdn.imooc.com//climg/5f327a4b0967669905440238.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小脸 2020-08-11 18:23:32

同学你好,这里同学可能在代码中给出了返回值,如下:

http://img1.sycdn.imooc.com//climg/5f327171090c8b9105290252.jpg

如果并未给出返回值,是会出现错误的。

http://img1.sycdn.imooc.com//climg/5f3271960958001b05570238.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 能掐会算 #1
    老师好,可能我的表示不是很清楚,我指的是String那边,方法返回类型
    2020-08-11 18:50:35
好帮手慕小脸 2020-08-11 16:40:14

同学你好,

1、按照同学的写法,实现一个泛型接口时不指明类型时,默认是Object类型的。如下所示:

http://img1.sycdn.imooc.com//climg/5f3271f3098eec9605780278.jpg

2、不存在类型转换。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 能掐会算 #1
    那我call()前面加了String但接口名后没写泛型类型,怎么还是可以运行的?
    2020-08-11 17:39:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师