Whats the difference between subClass sc = new subClass() and superClass sc = new subClass?
initialization, java, object
Solution
Simple explanation : When you use
SuperClass obj = new SubClass();
Only public methods that are defined in `SuperClass` are accessible. Methods defined in `SubClass` are not.
When you use
SubClass obj = new SubClass();
public methods defined in `SubClass` are also accessible along with the `SuperClass` public methods.
Object created in both cases is the same.
Ex:
public class SuperClass {
public void method1(){
}
}
public class SubClass extends SuperClass {
public void method2()
{
}
}
SubClass sub = new SubClass();
sub.method1(); //Valid through inheritance from SuperClass
sub.method2(); // Valid
SuperClass superClass = new SubClass();
superClass.method1();
superClass.method2(); // Compilation Error since Reference is of SuperClass so only SuperClass methods are accessible.
Problem
``` class superClass {} class subClass extends superClass{} public class test { public static void main() { superClass sc1 = new subClass(); subClass sc2 = new subClass(); //whats the difference between the two objects created using the above code? } } ```