预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

高级类特性多态性用abstract关键字来修饰一个方法时,这个方法叫做抽象方法。 抽象方法是只有返回值类型、方法名、方法参数而不定义方法体的一种方法。 抽象方法的方法体在子类中才编写实现。 abstract返回类型方法名(参数列表);抽象类抽象类例1.闭合图形抽象类ClosedFigure及其子类矩形类Rectangle。final修饰符可应用于类、方法和变量 最终类不能被继承,即最终类无子类 publicfinalclassMathextendsObject //数学类,最终类 publicclassMyMathextendsMath //编译错,最终类不能被继承 最终方法不能被覆盖接口(interface)在Java语言中,用关键字interface来定义接口。其定义格式如下: [修饰符]interface接口名{ //接口体 } 接口体中定义的变量均为终极(final)的、静态(static)的和公共(public)的。接口体中定义的方法均为抽象的和公共的。在某个继承接口的派生类中重写接口中的抽象方法称为实现这个接口。派生类实现接口用implements说明,不能用extends说明。 若实现接口的类不是抽象类,则在该类的定义部分必须实现指定接口的所有抽象方法。因为是覆盖方式,所以方法头部分应该与接口中的定义完全一致,即有完全相同的参数表和返回值。 interfaceIrect{ publicfinalstaticdoublew=3,l=4; publicabstractvoidcompute(); } classCrectimplementsIrect{ publicvoidcompute() { System.out.println( "边长分别为3和4的长方形面积为:"+w*l); } } 接口的实现举例接口也可以通过关键字extends继承其他接口。子接口将继承父接口中所有的常量和抽象方法。此时,子接口的非抽象派生类不仅需实现子接口的抽象方法,而且需实现继承来的抽象方法。不允许存在未被实现的接口方法。 例如:InterfaceB{……} InterfaceAextendsB{……} interfaceA{ Stringa="在接口A中"; voidshowA(); } interfaceBextendsA{ Stringb="在接口B中"; voidshowB(); } interfaceCextendsB{ Stringc="在接口C中"; voidshowC(); } classInterfaceABCimplementsC{ publicvoidshowA() System.out.println(a); } publicvoidshowB(){ System.out.println(b); } publicvoidshowC(){ System.out.println(c); } } publicclassUseInterface{ publicstaticvoidmain(Stringargs[]) { InterfaceABCi=newInterfaceABC(); i.showA();i.showB();i.showC(); } } 程序运行结果如下: 在接口A中 在接口B中 在接口C中接口的使用使得方法的描述说明和方法功能的实现分开考虑,这有助于降低程序的复杂性,使程序设计灵活,便于扩充修改。这也是Java面向对象程序设计方法中多态特性的体现。内部类内部类的例子实例化内部类内部类(con.)内部类特性包(package)包由包语句package创建,其语法格式如下: package[包名1[.包名2[.[...]]]] 关键字package后是不同层次的包名,在包名1下允许有次一级的子包-包名2,包名2下可以有更次一级的子包-包名3等等。各级包名之间用“.”号分隔。通常情况下,包名称的元素被整个地小写。 在Java程序中,package语句必须是程序的第一条非空格、非注释语句。使用包的方式MyEclipse