Java编程中签名更改代码怎么实现
来源:爱站网时间:2022-01-27编辑:网友分享
想要了解清楚Java编程中签名更改代码怎么实现这个问题,可以看看爱站技术频道小编所整理的相关资料,感兴趣的小伙伴千万不要错过这经常的内容。
问题描述
所以我一直在研究继承,而我偶然发现了这个程序:
public class HelloWorld {
static class A {
void f() { System.out.println("A"); }
}
static class B extends A {
void f() { System.out.println("B"); }
}
static class C {
void func(B b) { b.f(); }
}
static class D extends C {
void func(A a){ a.f(); }
}
public static void main(String args[]) {
( (new D())).func( (A) (new B()));
A a = new B();
a.f();
B b = new B();
C c = new D();
c.func(b);
}
}
因此,即使A和C在最后几行中以完全相同的方式实现,A的方法被B覆盖,但C不被D覆盖?该程序打印如下:乙乙B
思路:
这是因为func
中的方法D
没有覆盖C
的签名更改。
static class C {
void func(B b) { b.f(); }
}
static class D extends C {
void func(B a){ a.f(); }
}
这将导致方法的覆盖。
爱站技术频道小编个大家分享的内容就到这里了,还有什么需要了解清楚的,欢迎来我们网站咨询或者留言给小编。
上一篇:怎么在Java中调用已声明的变量
下一篇:构造函数中引用如何实现比较好