gpt4 book ai didi

java - 转换参数如何影响 java 中的覆盖和重载方法?

转载 作者:行者123 更新时间:2023-11-29 03:19:04 24 4
gpt4 key购买 nike

我了解了 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com