我了解了 java 中的多态性以及(子)扩展类中的方法何时会覆盖父类中的方法,以及方法何时会重载其他方法。
这个网站帮助我理解了这些问题。 但是,我没有找到任何内容来解释什么以及如何转换对象,和/或转换传递给方法的参数影响方法覆盖和重载。
转换和重载的一个例子:
public class A{
private int num;
public A(int n){
num = n;
}
public int getNum(){
return num;
}
public boolean f(A a){
return num == a.num * 2;
}
}
public class B extends A {
public B(int n){
super(n);
}
public boolean f(B b){
return getNum() == b.getNum();
}
}
public class C extends A {
public C(int n){
super(n);
}
public boolean f(A a){
return a instanceof C && getNum() == a.getNum();
}
}
考虑这行代码:
A y1 = new B(10);
C z2 = new C(10);
System.out.println(z2.f((C)y1));
将如何影响 y1 的施放? 我对总体思路很感兴趣……强制转换如何影响重载和覆盖?
最佳答案
类型转换将引用从一种类型更改为另一种类型
重载是指2个同名函数接受不同的参数,并根据参数执行正确的函数
覆盖是指子类的方法替换或覆盖其基类中的相同方法
我不明白转换与覆盖或重载有什么关系
关于java - 转换参数如何影响 java 中的覆盖和重载方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24778214/