---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

3.10接口

1、接口中常见的成员:全局常量和抽象方法

      注意:接口中的成员都是公共的,修饰符都是可以省略,但不建议,因为那样阅读性差。

2、实现:类与接口之间的关系(implements)

      接口是不可实例化的,只能由子类覆盖接口中的所有抽象方法后,子类才可以实例化

3、多实现

     1)、出现的原因:java中不支持多继承,于是改良成多实现,接口的出现避免了单继承的局限性

     2)、一个类中可以实现多个接口,因为接口中都是抽象方法,都没有方法体

     3)、实现与实现之间的关系:可以多继承,因为接口中都是抽象方法,都没有方法体。

     4)、一个类在继承另一个类的同时,还可以实现多个接口

   4、特点:

     1)、接口是对外暴露的规则

     2)、接口是程序的功能扩展

     3)、接口的出现降低了耦合性(紧密联系程度)

     4)、接口可以用来多实现

 5、接口与抽象类的异同点

     1)、相同点:都是不断向上抽取而来的

     2)、不同点:

         (1)、前者需要被实现,而且可以多实现;后者需要被继承,但只能当单继承。

         (2)、前者只能定义抽象方法,必须由子类去实现;后者可以定义抽象与非抽象类方法,子类继承后,可以直接使用非抽象方法。

         (3)、前者在定义体系外的功能扩展;后者可以定义体系的基本共性内容 

6、代码示例

abstract class Student{
abstract void study();
void sleep(){
System.out.println("sleep");
}
}
interface Smoke{
public abstract void smoking();
}
class Zhangsan extends Student implements Smoke{
public void smoking() {}//实现抽烟接口
@Override
void study() {}//复写study方法;
}
public class AboutInterface {
public static void main(String[] args) {
Zhangsan zs = new Zhangsan();
zs.sleep();
}
}

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<ahref="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>