首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

2-1 抽象类、接口、多态、聚合

2013-01-27 
2-1 抽象类、接口、多态、集合1.抽象类1.1 抽象类的定义使用abstract修饰的类就是抽象类,示例如下:public abs

2-1 抽象类、接口、多态、集合
1.抽象类1.1 抽象类的定义

使用abstract修饰的类就是抽象类,示例如下:

public abstract class Test{//抽象类定义    public abstract void doItByHand();//抽象方法定义}

1.2 抽象类的作用

通过继承它实现多态,后期实现具体方法,可以为将来要实现的东西做好接口,实现重用性;抽象类是接口和实现类之间的桥梁。

1.3 抽象方法

只给出方法定义而不具体实现的方法被称为抽象方法。

2. 接口2.1 接口的定义

接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

定义接口的语法格式如下:
访问修饰符 修饰符  interface 接口名称{
       抽象属性集
       抽象方法集
}

2.2 接口的作用声明方法,期望一个或更多的类来实现该方法。揭示一个对象的编程接口,而不揭示类的实际程序体。捕获无关类之间的相似性,而不强迫类关系。可以作为参数被传递到在其它对象上调用的方法上通过接口可以实现不相关类的相同行为,而不需考虑这些类之间的层次关系。根据接口可以了解对象的交互界面,而不需了解对象所属的类。2.3 Comparable接口

此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。

实现Comparable接口需要实现int compareTo(T o)方法,此方法比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
强烈推荐 (x.compareTo(y)==0) == (x.equals(y)) 这种做法,但不是严格要求这样做。

2.4 Comparator接口

Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代码嵌入自身类中,而后者在一个独立的类中实现比较。 如果类的设计师没有考虑到Compare的问题而没有实现Comparable接口,可以通过  Comparator来实现比较算法进行排序,并且为了使用不同的排序标准做准备,比如:升序、降序。

2.5 接口与抽象类的关系与区别

关系:接口是一种特殊的抽象类,它们的渊源颇深,有很大的相似之处。

区别:

抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。当然,变量定义也可以是friendly。抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。接口中的方法默认都是 public abstract 类型的。3. 多态性的定义

同一行为的多种不同表达,或者同一行为的多种不同实现就叫做多态。

4. 方法重载

在同一个Java 类中(包含父类),如果出现了方法名称相同,而参数列表不同的情况就叫做重载。

方法的重载的规则:
(1):方法名称必须相同
(2):参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同)。
(3):方法的返回类型可以相同也可以不相同。仅仅返回类型不同不足以成为方法的重载。

5. 方法覆盖

如果在新类中定义一个方法,其名称、返回类型及参数表正好与父类中方法的名称、返回类型及参数相匹配,那么,新方法被称做覆盖旧方法。

方法覆盖规则如下:
(1):覆盖方法的返回类型、方法名称、参数列表必须与它所覆盖的方法的相同。
(2):覆盖方法不能比它所覆盖的方法访问性差(即访问权限不允许缩小)。
(3):覆盖方法不能比它所覆盖的方法抛出更多的异常。

6. Java集合框架

“集合框架”由一组用来操作对象的接口组成。

常用的接口有:Set,List,Map,常用的实现类有:HashSet,TreeSet,ArrayList,LinkedList,HashMap,TreeMap

6.1 常用集合类ArrayList的使用

具体使用方法查看API文档

 

 交流探讨到我的新浪微博:http://weibo.com/tianrui1990

 

 

 

1楼debuglist5天前 21:34
这些东西语言都实现了,自己使用就好,用的多了,自己就会实现了

热点排行