Ich habe das unten Stück Code:Typenkonflikt in Java?
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();
}
}
ich den Code geändert, wie unten zu sehen:
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();
}
}
Im zweiten Code-Schnipsel, ich bin BClass b = new AClass();
für diese Änderung eines Typenkonflikt Fehler.
Ich lerne Java und ich möchte die tiefere Bedeutung des Fehlers verstehen und ich möchte wissen, warum der Fehler im zweiten Codeausschnitt ?.
'AClass' ist kein' BClass', also können Sie nicht so tun, als wäre es. Was sind deine Zweifel? –
'BClass extends AClass' bewirkt, dass jedes' BClass'-Objekt auf einen gültigen 'AClass'-Objektverweis verweist, aber nicht umgekehrt. – pyon
Möchten Sie 'AClass a = neue BClass();'? – Andrew