欢迎来到天天文库
浏览记录
ID:36206329
大小:540.81 KB
页数:18页
时间:2019-05-07
《java上第九章抽象类、接口和包》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章抽象类、接口和包学习目标理解抽象类和抽象方法的概念,熟练定义抽象类。理解接口的含义,熟练定义使用接口。理解包的概念,熟悉包的定义,熟练引用包。抽象类-1逆着继承层次关系由下而上,类逐渐变得更为通用,很可能也更为抽象。从某种角度来说,越往上层的类越通用越抽象,这样我们就把它用作派生其他类的基类,而非具有需要使用的特定实例的类。抽象方法的语法:[修饰符]abstract返回类型方法名([参数列表])[throws异常列表];抽象类-2抽象类的语法:[修饰符]abstractclass类名[extends…][implements…]{}例
2、如:publicabstractclassAnimal{publicabstractvoidsound();}抽象类-3定义抽象类的子类:publicclassCatextendsAnimal{publicvoidsound(){System.out.println("miao……");}}练习:另外定义Animal类的两个子类,覆盖sound方法。接口-1接口:是由一系列静态常量和抽象方法组成的集合,是类似于类的一种结构,比抽象类更抽象,可以理解接口是一种“纯”抽象类。接口-2由于Java中的继承只支持单亲继承,这样难免会留下一些缺陷,接
3、口的使用正是弥补这一缺陷,即通过接口实现多重继承。接口-3范例解析:练习:定义一个模拟“跑”行为的接口。publicinterfaceRunning{voidrunning();}接口-4使用接口:练习:让Person类实现Running接口。publicclassPersonimplementsRunning{publicvoidrunning(){System.out.println("personrun……");}}包-1包是类的容器,是一系列相关类和接口的集合,也是对类的一种更大的封装。使用包的主要原因是要保证类名的唯一性,即“防止
4、命名混乱”和“控制包中成员的可访问性”。语法:package包名[.子包名[.子包名[…]]]包-2范例解析:例如:编写一个测试文件Temp.java。packagecn.hope;publicclassTemp{publicvoidtestPackage(){System.out.println(“testing……”);}}包-3编译Temp.java文件。javac–d.Temp.java其中–d是带包编译的参数.是包依托路径,“.”代表当前文件夹编译结果会在当前文件夹下生成cn子文件夹,在cn下生成hope文件夹,在hope文件夹中
5、存放Temp.class文件。包-4类可以使用其所在包中的所有类,还可以使用其他包中的所有public类。访问其他包中的public类有两种方式。第一种是在每个类名前简单地加上完整的包名。例如:java.util.Datetoday=newjava.util.Date();包-5很明显,上一页的做法十分繁琐,简单常用的方法是使用import关键字。import语句的目的是给出指向包含在包中的类的简写方式。使用了import之后,就不用再给出完整的包名。使用时,可以使用import导入特定的类,或者是整个包。语法:import包名[.子包名[
6、.*
7、.类名]包-6范例解析:importcn.hope.Temp;//或者importcn.hope.*;publicclassTestTemp{publicstaticvoidmain(String[]args){Temptmp=newTemp();tmp.testPackage();}}静态导入(附加)静态引入是指除了引入类之外,还可以引入某个类的静态字段。例如:importstaticjava.lang.Math.PI;或者importstaticjava.lang.Math.*;但这个新语言元素意义不大。当引入太多静态字段后,代码
8、会变得难以阅读和维护。由于静态字段的名字通常不如类名那么具有描述性,认为原先在静态字段前写上类名才是更好的选择。小结本单元详细讲述了抽象类的概念、使用方法,这一小节重点要牢记抽象的非抽象子类一定要覆盖抽象类中所有的抽象方法。接口这部分内容,重点是接口的声明(用interface关键字)、接口的继承关系以及接口的实现,应该熟悉掌握。包也是java中非常重要的一部分内容,应该熟练在创建包以及使用包。谢谢!
此文档下载收益归作者所有