java多态演讲ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

sramwww. 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(); } }
//测试类 public class Test{ public static void main(String args〔〕){ Father father; father = new Son1(); father.hitChild(); father = new Son2(); //子类2 father.hitChild(); public class Son2 extends Father{ father //重写父类打孩子方法 都调用了相同的方法,出现了不同的= new Son3(); father.hitChild(); public void hitChild(){ 结果!这就是多态的表现! }} System.out.println("我知道错了,别打了!"); }}
sramwww. sram-edu.com
安博思软
多态的实现:通过接口实现
继承 单继承 一个类只能继承一个父类! 一个类只能继承一个父类!
接口
多实现
一个类可以同时实现多个接口! 类可以同时实现多个接口! 同时实现多个接口
一个接口类型变量也可以指向其实现类的实例,这也是 个接口类型变量也可以指向其实现类的实例,这也是
类里重写的代码不一样,自然表现形式就不一样。
这样用父类的变量去引用不同的子类,在调用这个相同的
方法的时候得到的结果和表现形式就不一样了,这就是多态,
相同的消息(也就是调用相同的方法)会有不同的结果
sramwww. sram-edu.com
安博思软
//父类 public class Father{ //父类有一个打孩子方法 public void hitChild(){} System.out.println(“我是父亲,可以打儿子!"); }
输出结果:
我知道错了,别打了! 为什么打我?我做错什么了! 我跑,你打不着!
//子类3 public class Son3 extends Father{ //重写父类打孩子方法 public void hitChild(){ System.out.println("我跑,你打不着!"); }}
//子类1 public class Son1 extends Father{ //重写父类打孩子方法 public void hitChild(){ System.out.println("我知道错了,别打了!"); }}
sramwww. sram-edu.com
安博思软
sramwww. sram-edu.com
安博思软
多态性有两种:
编译时多态性(静态绑 定)
运行时多态性(动态 绑定)
如果在编译时不能确定,只能 , 在运行时才能确定执行多个 同名方法中的哪一个,则称为 运行时多态性。
对于多个同名方法,如果在编 译时能够确定执行同名方法 中的哪一个,则称为编译时多 态性。
sramwww. sram-edu.com
安博思软 安博思软
Thank You!
谢谢! 谢谢!
sramwww. sram-edu.com
打印
打印
黑白打印机 彩色打印机
打印效果: 打印效果:彩色
打印效果: 打印效果:黑白
sramwww. sram-edu.com
安博思软 安博思软
为什么会出现多态 为什么会出现多态? 多态
Java 中的引用变量有两个类型,一个是编译时的类 型,一个是运行时的类型,编译时的类型由声明该变 量时使用的类型决定,运行时的类型由实际赋给该变 量的对象决定。如果编译时的类型与运行时的类型不 一致就会出现所谓的多态。(Polymorphism)
sramwww. sram-edu.com
安博思软 安博思软
多态的优点: 多态的优点:
1).应用程序不必为 每一个派生类(子 类)编写功能调用, 只需要对抽象基类 进行处理即可。这 一招叫“以不变应 万变”,可以大大 提高程序的可复用 性。
2). 派生类的功能可 以被基类的引用变 量引用,这叫向后 兼容,可以提高程 序的可扩充性和可 维护性。。
多态的一种表现。 多态的一种表现。 表现
sramwww. sram-edu.com
安博思软
//类 2 //新接口 public class daughter 2 implements public interface PetInterFace{ PetInterFace{ //新功能方法 //实现接口方法 public void pet(); 输出结果:父亲溺爱我! public void pet(){ } 父亲宠爱我! System.out.println(“父亲宠爱我!"); }} //类 1 //测试类 public class daughter1 implements public static void main(String[] args){ PetInterFace{ PetInterFace dg1 = new daughter1 (); //实现接口方法 dg1. Pet(); public void pet(){ PetInterFace dg2 = new daughter2 (); System.out.println(“父亲溺爱我!"); dg2. Pet(); }} } }
安博思软
Байду номын сангаас
Java 基 础 知 识 多 态
sramwww. sram-edu.com
安博思软
多态( 多态(Polymorphism) )
打印机
所谓多态,是指把类 中具有相似功能的不 同方法使用同一个方 法名来实现,从而可 以使用相同的方式来 调用这些具有不同功 能的同名方法。简单 来说就是多态是具有 表现多种形态的能力 的特征 。
sramwww. sram-edu.com
安博思软 安博思软
多态:实现多态三个条件:
1:继承 2:重写(重写父类继承的方法) 3:父类引用指向字类对象
sramwww. sram-edu.com
安博思软
多态的实现:通过继承实现
JAVA中,一个类之能有一个父类,不能多继承。一个父类可 以有多个子类,而在子类里可以重写父类的方法,这样每个子
相关文档
最新文档