如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。接口是抽象方法和常量值的定义集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
public interface Runner
{
int ID=1;
void run();
}
接口里的变量默认是用public static final标示的,所以,接口中定义的变量就是全局静态常量。
我们可以定义一个新的接口,用extends关键字去继承一个已有的接口;也可以定义一个类,用implements关键字去实现一个接口中的所有方法;还可以去定义一个抽象类,用implements关键字去实现一个接口中定义的部分方法。
interface Runner
{
int ID=1;
void run();
}
interface Animal extends Runner
{
void breathe();
}
class Fish implements Animal
{
public void run()
{
System.out.println("Fish is swimming");
}
public void breathe()
{
System.out.println("Fish is bubbing");
}
}
abstract class LandAnimal implements Animal
{
public void breathe()
{
System.out.println("LandAnimal is breathing");
}
}
一个类可以在继承一个父类的同时,实现一个或多个接口,extends关键字必须位于implements关键字之前。
class Student extends Person implements Runner , Flyer
{
……………………………………………………….
}
接口的实现及特点的小结:
1. 实现一个接口就是要实现该接口的所有方法(抽象类除外)
2. 接口中的方法都是抽象的
3. 多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口