抽象类、接口与内部类.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《抽象类、接口与内部类.ppt》由会员分享,可在线阅读,更多相关《抽象类、接口与内部类.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java教程教程第第5章章 抽象类、接口与内部类抽象类、接口与内部类n5.1 抽象类抽象类n5.2接口接口n5.3内部类内部类n5.4 包包第第5 5章章 抽象类、接口与内部类抽象类、接口与内部类5.1 5.1 抽象类抽象类(1)(1)n在继承的层次关系中,从子类到父类,类就变的更一般、更通用。类的设计应该保证父类包含子类的共同特征,也就是父类应该是子类的良好的抽象。n有时我们将一个父类设计的非常非常的抽象,以至于它都没有具体的实例,这样的类我们称之为抽象类(abstract class).n当需要一个类作为一个更通用的接口来控制一系列的相关类的时候,我就要创建一个抽象类来实现这个功能5.1
2、5.1 抽象类抽象类(2)(2)n抽象类:用abstract关键字来修饰一个类时,该类叫做抽象类;n抽象类必须被继承。n抽象类不能被直接实例化。它只能作为其它类的超类,这一点与最终类(final类)正好相反。n抽象方法:用abstract来修饰一个方法时,该方法叫做抽象方法。n抽象方法必须被重写n抽象方法只有声明,不能有实现。n定义了抽象方法的类必须是抽象类。nabstract returnType abstractMethod(paramlist);两个类Circle和Rectanglepublic class Rectangle public float width,height;Rect
3、angle(float width,float height)this.width =width;this.height=height;public double area()return width*height;public class Circle public float r;Circle(float r)this.r=r;public double area()return 3.14*r*r;5.1 5.1 抽象类抽象类(3)(3)n假设有若干个Circle,以及若干个Rectangle,希望计算它们的总面积,直截了当的做法是将它们分别放到两个数组中,用两个循环,加上一个加法,这种做
4、法是不漂亮的。n如果还有其它形状:Triangle等,上述方法显得“累赘”。我们希望有一种统一的表示,例如用一个数组shape,接受所有的形状,然后用:for(i=0;ishape.length;i+)area_total+=shapei.area();5.1 5.1 抽象类抽象类(4)(4)abstract class Shape abstract double area();class Rectangle extends Shape public float width,height;Rectangle(float w,float h)this.width =width;this.heig
5、ht=height;public double area()return width*height;class Circle extends Shape public float radius;Circle(float radius)this.radius=radius;public double area()return 3.14*radius*radius;5.1 5.1 抽象类抽象类(5)(5)5.1 5.1 抽象类抽象类(6)(6)通过上面的例子我们可以看出,抽象类Shape是Circle 和Rectangle的统一的接口。使利用Circle 和Rectangle的对象变的更加方便。在
6、例子中抽象类Shape被Circle 和Rectangle继承,抽象类必须在被继承并其继承它的类不再是抽象类的时候才能被实例化,抽象方法必须被重写。5.25.2接口接口n接口的定义与实现接口的定义与实现n用接口实现用接口实现Java中的多重继承中的多重继承n5.2.3 接口的扩展接口的扩展n5.2.4 接口的嵌套接口的嵌套 接口(interface)就是方法定义和常量值的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现。通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。通过接口可以指明多个类需要实现的方法。通过接口可以了解对象的
7、交互界面,而不需了解对象所对应的类。5.25.2接口接口 用implements子句来表示一个类使用某个接口。在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。利用接口可实现多重 继承,即一个类可以实现多个接口,在implements子句中用逗号分隔。接口的作用和抽象类相似,只定义原型,不直接定义方法的内容。接口中的方法和变量必须是public的。接口的定义与实现接口的定义与实现接口的定义与实现接口的定义与实现Java中的接口声明的语法为:interface interfaceName/接口体 /常量域声明 域类型 域名=常量值;/抽象方法声明 返回值 方法名(参数列表);例
8、如:interface myinterface void f();int g();接口的定义与实现接口的定义与实现n接口实现用关键字implements,实现的具体形式:nclass ClassName implements interfaceNamen接口(interface)作为特殊形式的抽象类,和类(class)在使用上具有类似的约束。n与类继承不同,一个接口可以继承多个父接口n一个public接口只能定义在同名的.java文件中n 程序5.4 5.2.2 5.2.2 用接口实现用接口实现JavaJava中的多重继承中的多重继承n类允许实现多个接口。n 一个类可以看起来像多个接口。n类通
9、过实现多个接口间接的实现java中的多重继承。n类可以转型为多个接口的类型进行访问。n程序5.55.2.3 5.2.3 接口的扩展接口的扩展n通过继承可以对一个或多个接口进行组合并扩展,并可以在扩展的接口中添加新的方法,使接口更加丰富。5.2.3 5.2.3 接口的扩展(例)接口的扩展(例)interface I1 void f1();interface I2 void f2();interface Ie1 extends I2 void fe1();interface Ie2 extends Ie1,I1 /只有在接口的情况下才能继承多个接口。void fe2();5.2.4 接口的嵌套接口
10、的嵌套n类嵌套接口n接口嵌套接口5.2.4 接口的嵌套(接口的嵌套(类嵌套接口)class A interface B void method();private interface B void method();5.2.4 接口的嵌套(接口的嵌套(接口嵌套接口)interface A interface B void f();public interface C void f();5.3内部类内部类n内部类的基本语法内部类的基本语法n局部内部类局部内部类n静态内部类静态内部类n匿名内部类匿名内部类n内部类的继承内部类的继承5.3内部类内部类n 嵌套在类里面的类就被称为内部类。内部类允许一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 抽象 接口 部类
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内