Java集合类库的顶层里的Collection

更新时间:02-01 教程 由 别想 分享

Java集合类库的顶层里的Collection?

回答此问题前,先上Java的容器架构图:

看了上述架构后,应该不会再问上述问题了。如果还会问的话,再展开一二:

1. Java中接口和抽象类的区别?

2. 接口和抽象类如何选择?

3. 针对接口而非对象编程!

1. Java中接口和抽象类的区别?

接口

1. 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口。

2. 接口里面的成员变量默认都是public static final类型的。必须被显示的初始化。

3. 接口里面的方法默认都是public abstract类型的。隐式声明。

4. 接口没有构造方法,不能被实例化。

5. 接口不能实现另一个接口,但可以继承多个接口。

6. 类如果实现了一个接口,那么必须实现接口里面的所有抽象方法,否则类要被定义为抽象类。

抽象类

1. 如果将一个类声明为abstract,此类不能生成对象,只能被继承使用。

2. 抽象方法必须存在于抽象类中。

3. 抽象类中可以有一般的变量和一般的方法。

4. 子类继承抽象类必须实现其中抽象方法,除非子类为抽象类。 private void print(){};此语句表示方法的空实现。 abstract void print(); 此语句表示方法的抽象,无实现。

接口和抽象类的区别:

抽象类只能继承一次,但是可以实现多个接口;接口和抽象类必须实现其中所有的方法,抽象类中如果有未实现的抽象方法,那么子类也需要定义为抽象类。抽象类中可以有非抽象的方法;接口中的变量必须用 public static final 修饰,并且需要给出初始值。所以实现类不能重新定义,也不能改变其值。接口中的方法默认是 public abstract,也只能是这个类型。不能是 static,接口中的方法也不允许子类覆写,抽象类中允许有static 的方法。

接口和抽象类的核心一点,总结一句话:Java特有的接口机制突破了Java单继承的缺陷,使之拥有了C++一样的多继承功能。

2. 接口和抽象类如何选择?

1. 如果预计要创建类的多个版本,则创建抽象类。抽象类提供简单的方法来控制类版本。

2. 如果创建的功能将在大范围的异类对象间使用,则使用接口。

3. 如果要设计小而简练的功能块,则使用接口。

4. 如果要设计大的功能单元,则使用抽象类。

5. 如果要向类的所有子类提供通用的已实现功能,则使用抽象

3 针对接口而非对象编程!

如果上述接口改为抽象类来实现,除了架构问题,使用相关java容器时,如何实现针对接口编程?

篇幅有限,希望这个回答能帮到您。关注头条号,更多相关Java技术进阶干货文章免费分享。

声明:关于《Java集合类库的顶层里的Collection》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2205318.html