以前我们常说java是一门”面向对象的编程“,而现在我们更多说”面向对象编程“。可见java语言中接口的地位是什么高的。
一、什么是接口?在软件中接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合,但是没有方法的实现,接口其实上也可以看做是一个特殊的抽象类,但是采用和抽象类完全不同的方法来表示,两者的设计理念也是不同的,抽象类有利于代码复用,接口利于代码的扩展和维护。
二、接口的作用:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。接口可以让没有继承关系(is a关系)的类也能够有继承的行为。同时接口利用多实现机制有效的解决了java中单继承带来的丰富度不够的问题,让java语言更加丰富,更加简单!
三、接口的语法:
1.接口的定义语法:把定义类的class关键字换成interface关键字,访问修饰符只能是public或默认同包。属性---只能是公共的,静态的,常量属性---就算不写这些修饰符,也会默认为公共静态常量。设计接口更关注的是行为的设计(让没有继承关系的类也能共享行
为),而不是关注属性。
2.接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。
3.接口不能实例化,接口中不能有构造。
4.接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
5.接口的实现类必须实现接口的全部方法,只能是公共的抽象方法----就算不写,也会默认为公共抽象方法。
6.设计接口的意义在与让不同的类(没有继承关系)共享行为,但各个类又有各自的实现。
三、接口与抽象类的区别:
1.抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3.接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4.一个类只能继承一个抽象类,而一个类却可以实现多个接口。
类实现接口,却没有接口实现类的方法(只要有一个方法没有实现则该类就定义为抽象类)。接口的引用可以指向类的对象。但是只能访问到子类对象重写的定义在接口中的方法!接口继承接口可以是多继承接口!
原文:http://www.cnblogs.com/javaxl/p/7260667.html