|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
抽象类和接口 什么是接口:接口就是一些方式特征的集合------接口是对抽象的抽象。 什么是抽象类:抽象类对某详细类型的部分实现------抽象类是对详细的抽象。 方式特征包括:方式的名字、参数的数目、参数的类型。不包括:返回类型、参数名字、和抛出的非常。 接口是类型转变的前提、是动态调用的保证。实现某一接口就完成了类型的转变(多重继续);动态调用只关心类型,不关心详细类。 -------------------------------------------------------------------------------------------------------------------------------------- java接口(抽象类)用来声明一个新的类型。 Java设计师应当主要使用接口和抽象类将软件单位与内部和外部耦合起来。 换言之,应当使用java接口和抽象类而不是详细类进行变量的类型声明、参数的类型声明、方式的返回类型声明、以及数据类型的转变等。 当然一个更好的做法是仅仅使用接口,而不是抽象类来做上面这些事情。 在理想的情况下,一个详细类应当只实现接口和抽象类中声明的方式,而不应当给出多余的方式! 接口和抽象类一般作为一个类型等级结构的起点。 接口比抽象类更为抽象所以优先使用接口声明抽象类型! -------------------------------------------------------------------------------------------------------------------------------------- 抽象类和接口 抽象类仅提供一个类的部分实现。抽象类可以有实例变量、以及一个或多个构造函数。抽象类可以同时又抽象方式和详细方式。 一个抽象类不会有实例,它的构造函数不能被客户端用来创建实例。一个抽象类的构造函数可以被其子类调用,从而使一个抽象类的所有子类可以有一些共同的实现,而不同的子类可以在此基础上有不同的实现。 接口比抽象类更为抽象所以有线使用接口声明抽象类! 抽象类是用来继续的。(详细类不是用来继续的,“只要有可能不要从详细类继续---scott meryes”)。 抽象类设计原则: 1, 抽象类应当拥有尽可能多的代码!(公用方式)。代码集中于抽象的方向。 2, 抽象类应当拥有尽可能少的数据!(公共属性)。数据集中于详细的方向。 继续复用的使用条件------- Peter Coad条件 1. 子类是超类的一个特别种类而不是超类的一个角色!准确区分“Has-A”“Is-A”的关系。 2. 子类之间不应发生替换!? 3. 子类具有扩展超类的责任,而不是置换(Override)掉或注销(Nullify)掉的责任。 4. 只有在分类学角度上有意义时才可以使用继续,不要从详细类继续。 接口和抽象类的区别: 1. 抽象类可以提供某些方式的实现。假如向抽象类中加入一个新的详细的方式,那么所有的子类一下子就得到了这个方式。接口做不到这一点!(这也许是抽象类的唯一长处)。 2.因java的单根结构限制,只类只能实现一个抽象类类型,而接口类型这无此限制。这使抽象类作为类型定义工具的效能落后于接口。接口是定义混合类型(实现多从继续)的理想工具。 2。 从代码重构的角度上讲,将一个详细类从构成一个接口类型实现起来更轻易。 返回类别: 教程 上一教程: JDBCTM 指南:入门4 - Statement 下一教程: 【Java】命令行参数的获取及判定 您可以阅读与"《java与模式》笔记-----抽象类和接口"相关的教程: · 《java与模式》读书笔记 ----模式设计的原则 · 《java与模式》----创建模式系列工厂模式、单态模式精讲 · 一个体现Java接口及工厂模式长处的例子 · Java学习笔记_身份验证机制 · 学习Java的笔记(2) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |