For = with object references, if the type of the left operand is a class C, then the type of the right operand must be a subclass of C or the null value. : Reference Type Casting « Type Casting « SCJP






public class MainClass{
    public static void main(String[] argv){
        MyClass myClass = new MyClass();
        MySubclass mysubclass = new MySubclass();
        myClass = mySubclass();
        System.out.println();
    }
}
    
class MyClass{
}
class MySubclass extends MyClass{
}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	The method mySubclass() is undefined for the type MainClass

	at MainClass.main(MainClass.java:5)








4.3.Reference Type Casting
4.3.1.Object reference conversion
4.3.2.An interface type can be converted to an interface type or to Object.
4.3.3.Convert interface to super-interface
4.3.4.Object Method-Call Conversion
4.3.5.Cast between an interface and a nonfinal object.
4.3.6.Runtime casting: the class being converted must be itself or must inherit from it.
4.3.7.If New type is an interface, the class of the expression being converted must implement New type.
4.3.8.For = with object references, if the type of the left operand is a class C, then the type of the right operand must be a subclass of C or the null value.
4.3.9.If the type of the left operand is an interface I, the type of the right operand must be a subinterface of I, or a class that implements I, or the null value.
4.3.10.A reference to any object can be cast into a reference to an object of class Object.
4.3.11.A reference to an object can be cast into a reference to an object of its parent class.
4.3.12.A reference to an object can be cast into a reference to an object of its implemented interface
4.3.13.A reference to an object can be cast into a reference to an object of its implemented super interface
4.3.14.Casting Object References with Collections
4.3.15.An Object reference can be converted to:
4.3.16.Use a reference variable to refer to any object that is a subclass of the declared reference variable type