logo资料库

JAVA多态图文详解ppt.pptx

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
安博思软 Java 基 础 知 识 多 态 www. sram-edu.com
安博思软 多态(Polymorphism) 所谓多态,是指把类 中具有相似功能的不 同方法使用同一个方 法名来实现,从而可 以使用相同的方式来 调用这些具有不同功 能的同名方法。简单 来说就是多态是具有 表现多种形态的能力 的特征 。 打印机 打印 打印 彩色打印机 黑白打印机 打印效果:彩色 打印效果:黑白 www. sram-edu.com
安博思软 安博思软 为什么会出现多态? Java 中的引用变量有两个类型,一个是编译时的类 型,一个是运行时的类型,编译时的类型由声明该变 量时使用的类型决定,运行时的类型由实际赋给该变 量的对象决定。如果编译时的类型与运行时的类型不 一致就会出现所谓的多态。(Polymorphism) www. sram-edu.com
安博思软 www. sram-edu.com
安博思软 多态性有两种: l 编译时多态性(静态绑 l 运行时多态性(动态 定) 绑定) 对于多个同名方法,如果在编 译时能够确定执行同名方法 中的哪一个,则称为编译时多 态性。 如果在编译时不能确定,只能 在运行时才能确定执行多个 同名方法中的哪一个,则称为 运行时多态性。 www. sram-edu.com
静态绑定 动态绑定 安博思软 class Test { void print() { System.out.println(“hello ”); } void print(String x) { 可以看到一个类中成员方法的重载,也 System.out.println(“hello ”+x); 就是一个静态绑定,系统会在你编 } public static void main(String []args) 译的时候根据你调用的方法参数列表来 { 动态的决定调用哪一个函数 Test ts = new Test(); ts.print(); ts.print(“jack”); } } class Test { void print() { System.out.println("hello Test"); } class A extends Test { void print() { System.out.println("hello A"); } public static void main(String []args) { Test a=new A(); a.print(); } } 可以看到子类覆写了父类的方法, 也就是一个动态绑定,系统会 在运行时动态的决定调用子类覆写后 方法来实现 www. sram-edu.com
安博思软 安博思软 多态:实现多态三个条件: 1:继承 2:重写(重写父类继承的方 法) 3:父类引用指向字类对象 www. sram-edu.com
多态的实现:通过继承实现 安博思软 JAVA中,一个类之能有一个父类,不能多继承。一个父类可 以有多个子类,而在子类里可以重写父类的方法,这样每个子 类里重写的代码不一样,自然表现形式就不一样。 这样用父类的变量去引用不同的子类,在调用这个相同的 方法的时候得到的结果和表现形式就不一样了,这就是多态, 相同的消息(也就是调用相同的方法)会有不同的结果 www. sram-edu.com
分享到:
收藏