一个函数名根据对象不同对应不同实现 1)静多态(编译期多态)(静态绑定)→ 函数重载 重载条件:在一个类,函数名相同,参数列表不同 2)动多态(运行期多态)(动态绑定) 发生动态绑定的条件 (1)继承(2)重写(3)向上造型(基类的引用 引用的派生类的对象) 向上造型 Animal a = new Cat();//是一个 Object o = new Integer(10); People p = new Teacher(); 向下造型都是错的 instanceof关键字 作用:用来判断某个对象是否属于某种数据类型。 注意: 返回类型为布尔类型 3)多态的实现原理 地址覆盖问题