Class downcasting (as) in Java

class Shape { }

class Square extends Shape { }

class RedSquare extends Square { }

Square square = new Square();

//in Java there is no "as" keyword
Shape shape = (Shape)square;
//shape is Shape

RedSquare redSquare = (RedSquare)square//<-runtime error