如果我有a
声明的变量A a
和m
的方法void m(B b)
。有什么方法可以调用m(a)
吗?或者这可能永远不会起作用,因为a
类型为A
,b
类型为B
。
答案 0 :(得分:4)
如果A
扩展B
,它可以作为参数传递给该函数。如果不是,A
包含适合B
的值,则必须创建B
的实例,并使用A
实例的必需值填充它。
答案 1 :(得分:3)
如果A
是B
答案 2 :(得分:2)
这可以在两种情况下起作用:
A
是B
时,即继承或接口实现,或A
和B
是原始数据类型时,存在从A
到“B”的隐式转换。以下是一个例子:
void m(long b) {
...
}
int a = 123;
m(a); // This compiles and runs correctly
答案 3 :(得分:0)
当A
是B
的子类或我们可以说A
扩展B
时,这是可能的,
这在编程语言中称为继承,在此A
将是类B
的子级并继承其所有属性
您可以通过以下链接查看