易截截图软件、单文件、免安装、纯绿色、仅160KB

Java编程那些事儿70——抽象类和接口(三)

8.9.3 抽象类和接口的比较
         抽象类和接口都是进行面向对象设计时专用的设计结构,在实际进行项目设计时,经常需要考虑的问题就是——“使用抽象类还是接口”?下面通过对于抽象类和接口进行简单的比较,熟悉两者之间的区别和联系,从而在实际设计时使用恰当的结构。
1.         什么时候使用抽象类或接口?
当设计中为了规范类中方法声明的结构(即类的行为)时,使用抽象类或接口。也就是强制子类对外部提供统一的方法声明时,使用抽象类或接口。
2.         抽象类和接口的区别(不同点)
a)抽象类是类,而接口是接口。
因为抽象类是一个类,所以类内部可以包含的内容(构造方法、方法和属性等)在抽象类内部都可以存在,当然抽象类也受到类的单重继承的限制。而接口是接口类型,所以接口内部只能包含常量属性和抽象方法,但是一个类可以实现多个接口,所以接口不受类的单重继承的限制。
b)抽象类内部可以包含实体方法,而接口不能
         抽象类是一个类,所以在抽象类内部既可以包含抽象方法也可以包含实体方法,而接口内部的每个方法都必须是抽象方法。
c)抽象类可以继承类,而接口不能
         抽象类是一个类,所以在设计时可以使抽象类继承其它的类,在已有类的基础上进行设计,但是接口不能继承类。
3.         抽象类和接口的联系(相同点)
a)抽象类和接口都可以声明对象,但是都只能使用子类的构造方法进行创建。
b)抽象类和接口内部都可以包含抽象方法。
         按照Java语言的语法,子类在继承抽象类或实现接口时,都必须覆盖这些抽象方法,否则必须声明为抽象类。
c)抽象类和接口都可以代表一种类型,从而可以统一子类对象的类型,获得良好的可扩展性。
4.         什么时候使用抽象类?
当满足以下的条件时,最好使用抽象类进行设计:
a)子类不继承其它父类
b)子类中存在完全相同的功能实现的方法
c)子类中存在相同的属性
d)设计出的结构需要继承其它类
当需要满足d条件时,只能使用抽象类,否则也可以考虑使用接口实现。
5.  


相关文档:

Java中抽象类和接口的区别

Abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstractclass和interface的选择显得比较随意。其 ......

java中垃圾回收算法

1)垃圾回收的两个关键要素:
发现无用对象。
回收无用对象的内存空间。
 
2)6种垃圾回收算法:
 
引用计数法,tracing 算法,compacting算法,copying 算法,generation算法,adaptive算法。
 
3)detail:
引用计数法(Reference Counting Collector)
引用计数法是唯一没有使用根集的垃圾回收的 ......

java中的反射机制

1)概念:
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
2)功能:
     在运行时判断任意一个对象所属的类;
     在运行时 ......

Java获取操作系统信息

SAMPLE:
import java.util.Properties;   
  
Properties props=System.getProperties(); //获得系统属性集   
String osName = props.getProperty("os.name"); //操作系统名称   
String osArch = props.getPropert ......

常见的java排序

import java.util.Arrays;
public class Sort {
 
 //冒泡排序(从头到尾排)
 public static void bubbleSort(int[] arrays)
 {
  //第一次循环从第一个元素开始,到倒数第二个元素
  for(int i=0;i<arrays.length-1;i++)
  {
   for(int j=1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号