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

标签 java casting overloading overriding

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

相关文章:

java - Java 中的 JComboBox

java - Nim Logic错误游戏

java - 使用带有函数式接口(interface)的扩展 - Function<?扩展父级,*> 与 Function<? super 父级,*> 与函数<父级,*>

使用强制转换将负整数转换为正整数

.net - VB.NET 编译器如何选择要运行的扩展重载?

java - 解析 JsonObject 时出错

java - 从既不是 servlet 也不是 bean 的类访问 JSF bean

sql-server-2008 - SQL Server 2008 : Error converting data type nvarchar to float

c++ - 删除未使用的重载会导致编译错误?

c++ - 使用 const 参数的函数重载