Please explain out variable in System.out
out is sometimes referred to be object of type OutputStream
sometimes referred to as object of type PrintStream
and even when it is predefined variable, it is sometimes assigned it to PrintWriter object
PrintWriter out= response.getWriter();
is it due to the fact that a superclass reference can be assigned the reference to objects of its subclass?