接口(interface)是Java所提供的另一种重要技术,它的结构和抽象类非常相似,也具有数据成员与抽象方法,但它与抽象类又有以下两点不同:
1、 接口里的数据成员必须初始化,且数据成员均为常量。
2、 接口里的方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保有一般的方法,而必须全部是“抽象方法”。
interface 接口名称// 定义抽象类
{
final 数据类型 成员名称= 常量 ;// 数据成员必须赋初值
abstract 返回值的数据类型 方法名称(参数…);
// 抽象方法,注意在抽象方法里,没有定义方法主体。
}
(1)、接口里的“抽象方法”只要做声明即可,而不用定义其处理的方式;
(2)、数据成员必须赋初值,这样就可以了。
instanceOf
可以用 instanceof 判断一个类是否实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。instanceof 的语法格式为:
对象 instanceof 类(或接口)
它的返回值是布尔型的,或真(true)、或假(false)。
接口是无法直接实例化的,因为接口中没有构造方法,但是却可以根据对象多态性的概念,通过接口的子类对其进行实例化。
interface Person
{
public void fun1() ;
}
class Student implements Person
{
public void fun1()
{
System.out.println("Student fun1()");
}
}
class TestInterfaceObject
{
public static void main(String[] args)
{
Person p = new Student() ;
p.fun1() ;
}
}
输出结果:
Student fun1()
接口是可以被实例化的,但是不能被直接实例化,只能通过其子类进行实例化,而在这里将Person声明为抽象类道理也是一样的。