package exercise.first; /** * About polymorphism: * 1.polymorphism doesn't apply to static methods * 2.polymorphism is only for instance methods * @author Zhou-Jingxian * */ class Singer { public static String sing(){ return "la"; } public String sing2(){ return "s2"; } } public class Tenor extends Singer{ public static String sing(){ return "fa"; } public String sing2(){ return "t2"; } public static void main(String []args){ Tenor t = new Tenor(); Singer s = new Tenor(); System.out.println(t.sing() + " "+ s.sing()); System.out.println(t.sing2() + " "+ s.sing2()); } }
Polymorphism (Objective 5.2)
❑ Polymorphism means "many forms."
❑ A reference variable is always of a single, unchangeable type, but it can refer to a subtype object.
❑ A single object can be referred to by reference variables of many different types —as long as they are the same type or a supertype of the object.
❑ The reference variable's type (not the object's type), determines which methods can be called!
❑ Polymorphic method invocations apply only to overridden instance methods.