为了账号安全,请及时绑定邮箱和手机立即绑定

使用变参数覆盖字符串

使用变参数覆盖字符串

慕尼黑5688855 2022-09-14 09:43:46
通常,Var arg方法使用相同的方法覆盖 var arg 方法,但在我的代码中,使用 var args 覆盖常规方法。但一般来说,Var args 方法只应覆盖或被与 和 不同的其他 var args 方法覆盖或覆盖。Test.go(String[])A.go(String...)但我得到了输出T。class A{    public void go(String...s){            System.out.println("A");    }}class Test extends A {    public void go(String[] a){        System.out.println("T");    }    public static void main(String[] args){        A a = new Test();        a.go("dd");    }}输出: T
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

String[]并且在某些情况下是等效的,因此可以被 覆盖。这是在java中指示数组的方法之一。String...go(String... s)go(String[] s)



查看完整回答
反对 回复 2022-09-14
?
动漫人物

TA贡献1815条经验 获得超10个赞

Varargs只是对相同类型的数组的语法加糖,该数组向编译器指示从此时开始的一系列逗号分隔的参数应被视为数组。从签名的角度来看,并且是相同的。例如,您可以根据需要定义 main 方法。String[]String...public static void main(String... args)



查看完整回答
反对 回复 2022-09-14
?
慕容708150

TA贡献1831条经验 获得超4个赞

这两个声明是等效的,因为 Java 编译器将 varargs 扩展为指定类型的数组。所以你有效地覆盖了方法。go

看看 https://www.journaldev.com/1257/java-varargs#how-java-varargs-work


查看完整回答
反对 回复 2022-09-14
  • 3 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号