---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
java中的接口(Interface)就是一个特殊的抽象类(只有抽象方法),他定义了若干个抽象方法和变量,形成一个属性集合,该属性集合通常对应于某一组功能,其主要作用是可以帮助实现类似于类的多重继承的功能。
所谓多重继承,是指一个子类可以有一个以上的直接父类,该子类可以继承他所有的直接父类的成员。Java不支持多重继承,而是用接口实现比剁成继承更强的功能。编程者可以把用于完成特定功能的若干属相组织成相对独立的属相集合,凡是需要实现这种特定功能的类,都可以继承这个属相集合并在类内使用它,这种属相集合就是接口。
interface Inter //定义一个接口
{
public static final int NUM=3;//在接口中只能定义常量
public abstract void show();//定义了一个抽象方法
}
class Test implements Inter //定义了一个test类。实现Inter接口
{
public void show()//重写Inter接口中的show方法
{
System.out.println("hello word");
}
}
class InterfaceDemo
{
public static void main(String[] args)
{
Test t = new Test();//实例化Test类
t.show();//调用show方法
System.out.println(t.NUM);//打印接口中的常量
}
}
定义一个接口和定义类非常相似,interface前的修饰符可以为public或默认。其含义与类的访问控制相似。接口中的常量和方法都可以省略前面的修饰符,常量前面默认为public static final。方法前面默认为public abstract。但为了容易阅读,我们还是写上修饰符。
实现接口:
接口的声明仅仅给出了抽象方法,相当于程序开发早起的一组协议,而具体地实现接口所规定的的功能,则需某个类为接口中的抽象方法书写语句并定义实在的方法体。这成为实现干这个接口。
一个类要实现接口时,应注意一下问题
1.在类的声明部分,用implements关键字声明该类将要实现那些接口。
2.如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须实现指定接口的所有抽象方法。如果其直接或间接父类中实现了接口,父类所实现的接口中的所有抽象方法都必须有实在的方法体。也就是说,非抽象类中不能存在抽象方法。
3.一个类在实现某接口的抽象方法时,必须使用完全相同的方法头。否则。知识在重载一个新的方法,而不是实现已有的抽象方法
4.接口的抽象方法的访问限制符都已指定为public,所以雷在实现方法时,必须显示的使用public修饰符,否则将被系统警告为缩小了接口中定义的方法的访问控制范围。
5.一个类只能有一个父类,但是他可以同时实现若干个接口。一个类实现多个接口时,在importants子句中用逗号分隔。这种情况下如果把接口理解成特殊的类,那么这个利用接口实际上就获得了多个父类,即实现了多继承。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------