Why do we always have to cast the value returned by the method findViewById(id) ? The method already returns a view, as I\'ve seen in google reference :
View is the common superclass of other view classes such as ImageView. In object-oriented polymorphism, you can substitute a specific instance e.g. ImageView with the superclass. This is useful in generic APIs such as findViewById() return value.
Downcasting to a more specific type in Java requires an explicit cast.