我有以下代码:
public class AClass {
public AClass() {
System.out.println("Constructor A");
}
}
public class BClass extends AClass{
public BClass(){
System.out.println("Constructor B");
}
}
public class Test {
public static void main(String[] args) {
BClass b = new BClass();
}
}
我更改了代码,如下所示:
public class AClass {
public AClass() {
System.out.println("Constructor A");
}
}
public class BClass extends AClass{
public BClass(){
System.out.println("Constructor B");
}
}
public class Test {
public static void main(String[] args) {
BClass b = new AClass();
}
}
在第二个代码片段中,我收到此更改的类型不匹配错误 BClass b = new AClass();
。
我正在学习java,我想了解错误的更深层含义,我想知道为什么第二个代码片段中出现错误?
最佳答案
说你说;狗是一种动物,例如
class Animal { }
class Dog extends Animal {
public void bark() { }
}
class Cat extends Animal {
public void meow() { }
}
Animal a = new Dog(); // is ok.
但你不能说; Animal 是 Dog 的一种。
Dog d = new Animal(); // not ok.
d.bark(); // Animal doesn't have a bark();
关于java - java中类型不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36786843/