如果一个抽象类中的所有方法都是抽象的,就可以将这个类用接口来定义。
接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量的方法的定义,没有变量的方法的实现。
1:接口中的成员都是public访问类型的,接口里的变量默认是用public static final标识的。
2:可以定义一个新的接口用extends关键字继承一个已经有的接口。
3:可以定义一个类用implements关键字去实现一个接口中的所有方法,还可以定义一个类用implements关键字去实现一个接口中定义的部分方法。
4:一个类可以继承一个父类的同时实现一个或多个接口,extends关键字必须位于implements关键字之前。
如:
interface Runner
{
int ID = 1;
void run();
}
interface Animal extends Runner//继承Runner
{
void breathe();
}
class Fish implements Animal
{
public void run()
{
System.out.println("fish is swimming");
}
public void breathe()//必须是lublic的
{
System.out.println("fish is bubbling");
}
public static void main(String [] args)
{
Fish f = new Fish();
int j = 0;
j = Runner.ID;
j =f.ID;
}
}
abstract class LandAnimal implements Animal//必须是抽象的类
{
public void breathe(){};
}
interface Flyer
{
void fly();
}
class Bird implements Runner,Flyer
{
public void run(){}
public void fly(){}
}
/*class Student extends Person inplements Animal
{
}
*/
interface A //接口中只能定义常量
{
public static final int ID = 1;//public static final可以省略 ID是常量
int aa(int x,int y);
void bb();
}