Question: public class Person { public static void main(String[] args) { A obj = new B(); obj.staticMethod(); obj.instanceMethod(); } } class A { public static String
public class Person { public static void main(String[] args) { A obj = new B(); obj.staticMethod(); obj.instanceMethod(); } } class A { public static String staticField = "AstaticField"; public String instanceField = "AinstanceField";
public static void staticMethod() { System.out.println("A.staticMethod " + staticField); } public void instanceMethod() { System.out.println("A.instanceMethod " + instanceField); } } class B extends A { public static String staticField = "BstaticField"; public String instanceField = "BinstanceField";
public static void staticMethod() { System.out.println("B.staticMethod " + staticField); } public void instanceMethod() { System.out.println("B.instanceMethod " + instanceField); } }
I know the output, but I don't understand why it outputs what it does. I'd also like to know what the different parts of: A obj = new B(); is because I can't figure out what it affects.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
