接口用哪个关键字来定义呢?
采用interface来声明一个接口。
接口的定义包括接口声明和接口体。
接口声明的格式如下:(修饰符) interface 接口名 [extends 父接口]{方法……}
接口的extends字句与类声明的extends字句基本相同,不同的是一个接口可以有多个父接口。
为什么有了类还要使用接口呢?
我们在Java中类是单继承的,为了克服这一困难,于是有了接口。Java使用接口克服了单继承的限制,因为一个类最多只能有一个父类,而一个雷可以实现多个接口。
如果接口声明为public,则接口中的方法和变量全部为public。
接口是抽象类的一种,只包含常量和方法的定义,而没有变量的定义和方法的实现。而且接口中的方法都是抽象方法。
Java中接口的用处主要体现在一下几个方面:
1.通过接口指明多个类需要实现的方法。
2.通过接口了解对象的交互界面,而无需了解对象对应的类。
3.通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。
那么接口是怎么实现的呢?
接口的实现类似于继承,用关键字implements来声明一个类实现的接口,不
是使用继承中的extends。一个类可以实现多个接口。
另外,一个类实现一个接口的话,必须给出接口中所有方法的实现。即使不能实现,也要给出一个空方法。
下面给大家举一个形象的例子,我们学汉语,同时我们也学英语,汉语老师会说汉语,英语老师会说英语,所以我们学生会说汉语和英语。
下面先是一个名字为EnglishTeacher的类
package test;
public interface EnglishTeacher
{
public void SpeakEnglish();
}
接着是一个名字为ChineseTeacher的类
package test;
public interface ChineseTeacher
{
public void SpeakChinese();
}
下面是测试类:
package test;
class Student implements EnglishTeacher,ChineseTeacher
{
Student(){}
public void SpeakEnglish()
{
System.out.println("I can speak English.");
}
public void SpeakChinese()
{
System.out.println("I can speak chinese.");
}
}
class EncodeDemo
{
public static void main(String []args)
{
Student s=new Student();
s.SpeakChinese();
s.SpeakEnglish();
}
}
这个栗子是对Java接口多继承的一个解析。希望可以对你有所帮助和启发。