Using bounded type parameters in generic methods
Sometimes it may be appropriate to write a generic method, however it will not be possible for it to accept every type while still maintaining all the necessary functionality. To solve this, use bounded type parameters to restrict generic methods from accepting arguments of a particular kind. public <T extends Shape> void drawAll(List<T> shapes){ for (Shape s: shapes) { s.draw(this); } } The above method is used to draw a list of shapes....