Init parent class with a Child contstructor in Java, theory -
i've tested code.
main.
public class main { /** * @param args */ public static void main(string[] args) { parent parent = new child(12, "lorem", 12); if (parent instanceof parent) { system.out.println("parent"); } else if (parent instanceof child) { system.out.println("child"); } outchild(parent); } private static void outchild(parent parent) { child child = (child) parent; system.out.print(child); } }
parent.
public class parent { int id; string name; public parent(int id, string name) { this.id = id; this.name = name; } }
child.
public class child extends parent { int extra; public child(int id, string name, int extra) { super(id, name); this.extra = extra; } @override public string tostring() { return "id: " + id + ", name: " + name + ", extra: " + extra; } }
i need theory. why parent
instance considered parent
class instance has extra
field declared in child
only?
if had written parent parent = new parent(12, "lorem");
, called outchild(parent parent)
, have gotten classcastexception
.
your parent parent
reference, not object. means have reference parent minimum, sub class.
Comments
Post a Comment