传递与参数类型不同的类型

时间:2017-11-06 11:51:28

标签: java types

如果我有a声明的变量A am的方法void m(B b)。有什么方法可以调用m(a)吗?或者这可能永远不会起作用,因为a类型为Ab类型为B

4 个答案:

答案 0 :(得分:4)

如果A扩展B,它可以作为参数传递给该函数。如果不是,A包含适合B的值,则必须创建B的实例,并使用A实例的必需值填充它。

答案 1 :(得分:3)

如果AB

的子类,则此方法有效

答案 2 :(得分:2)

这可以在两种情况下起作用:

  • AB时,即继承或接口实现,或
  • AB是原始数据类型时,存在从A到“B”的隐式转换。

以下是一个例子:

void m(long b) {
    ...
}
int a = 123;
m(a); // This compiles and runs correctly

答案 3 :(得分:0)

AB的子类或我们可以说A扩展B时,这是可能的, 这在编程语言中称为继承,在此A将是类B的子级并继承其所有属性

您可以通过以下链接查看

https://www.tutorialspoint.com/java/java_inheritance.htm