繁体   English   中英

关于Java赋值运算符

[英]About Java Assignment Operator

如果我定义

class A {

public int a;
public float b;
public A() { 
a = 10;
}
}

class B extends A {

public B() {
a = 2;
}
}

class C extends A {

public C() {
b = 2.0f;
}
}

而且主要

public static void main(//...) {

A a = new A();
B b = new B();
C c = new C();

a = b; //error?
b = c; //this one too?

}

我不确定第一个错误,看起来不错。 您将来应该在其中发布确切的错误消息。 您永远不应忽略错误消息,因为它们会告诉您有关问题原因的信息。 第二个错误是显而易见的,它是类型不匹配C不会extends B ,因此您不能将C的实例分配给声明为B的引用。 要修复它,您应该将其声明为CAObject (因为它是所有类的隐式超类)。

此外,由于构造函数名为A()而不是C() ,因此您的class C无法编译,但这很可能是复制粘贴错误;)

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM