多态包括对象的多态和方法的多态,其中对象的多态包括下面两种情况:
父类 引用 = new 父类();
父类 引用 = new 子类();
方法的多态包括:
父类的实例对象可以访问父类的方法;
子类的实例对象可以访问子类重写的方法;
被static、private、final修饰的父类方法,子类的实例对象不存在虚方法的调用问题。Static方法,以声明的类型为准,与实例类型无关;Private方法子类看不见,也不会被虚化;final方法不能被子类覆盖。
多态的原理其实是运行时绑定,方法区中有类型信息的方法表,运行时指向将要调用的方法。