JAVA核心技术OOP接口实现多态.ppt

* * * * JAVA核心技术 本章相关词汇 单 词 说 明 interface 接口,界面 implements 实现 final 最终的,决定性的 本章目标 掌握Java接口 理解Java接口与多态的关系 掌握面向接口编程的思想 掌握常量接口的使用 生活中的接口 电脑主板上的PCI插槽的规范就类似于Java接口 声卡 显卡 网卡 每种卡的内部结构都不相同,可以把声卡、网卡、显卡都插在PCI插槽上,而不用担心哪个插槽是专门插哪个卡的 主板 什么是Java接口 2-1 一个Java接口是一些方法特征的集合,但没有方法的实现 public interface PCI { ?? public void start(); ? public void stop(); } class SoundCard implements PCI { public void start()??{ ???? System.out.println(Du du...); ?? } ?? public void stop()??{ ???? System.out.println(Sound stop!); ?? } } Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为 这是Java接口,相当于主板上的PCI插槽的规范 class NetworkCard implements PCI { public void start()??{ ???? System.out.println(Send...); ?? } ?? public void stop()??{ ???? System.out.println(Network stop!); ?? } } 声卡、网卡都实现了PCI插槽的规范,但行为完全不同 什么是Java接口 2-2 public class Assembler { ?? public static void main(String[] args) { ???? PCI nc = new NetworkCard(); ???? PCI sc = new SoundCard(); nc.start(); sc.start(); ?? } } 可以使用Java接口标识类型 运行时,根据实际创建的对象类型调用相应的方法实现 Du du... Send... 控制台输出 2 1 为什么需要Java接口 5-1 为各学校开发这样一个小系统,包含类型:教员、学校、打印机,具体要求如下: 教员、以及学校都具有方法:输出详细信息 学校具有属性:打印机,能够通过学校的打印机打印教员或学校的详细信息 系统要具备良好的可扩展性与可维护性 打印 教员 学校 教员 详细信息 学校 详细信息 detail方法 (输出详细信息) 为什么需要Java接口 5-2 以下这个解决方案中存在着什么问题? public class Teacher1 { //输出教员的详细信息 public String detail() { return 本人是教员; } } public class School1 { private Printer printer = new Printer(); //输出学校的详细信息 public String detail() { return 这里是学校; } //使用打印机打印教员信息 public void print(Teacher1 t){ printer.print(t.detail()); } //使用打印机打印学校信息 public void print(School1 s){ printer.print(s.detail()); } } public class Printer { public void print(String content) { System.out.println(开始打印:); System.out.println(content); } } 每增加一种新类型,都需要增加相应的print(类型名称 var)方法 ——程序的可扩展性及可维护性极差 ——这不符合系统的要求 为什么需要Java接口 5-3 可以通过多态性解决这个问题吗? 显然,本系统符合使用多态性的条件 教员 学校 detail方法 (负责输出详细信息) 教员 详细信息 学校 详细信息 1 2 2 1 回顾多态的含义: 实现同一个接口,使用不同的实例而执行不同操作 为什么需要Java接口 5-4 在这个系统中,存在继承关

文档评论(0)

1亿VIP精品文档

相关文档