如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。
接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。
接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的
定义接口
修饰符 interface 接口名 [extends 父接口列表]
{
常量域声明
抽象方法声明
}
class cat implements Animal
{
public void shout ()
{
System.out.print(“喵喵”);
}
}
实现接口
implements
一个类可以实现若干个接口
非抽象类必须实现所有的抽象方法
interface prt
{
public void prtln();
}
class A implements prt{
int a = 3;
public void prtln()
{
//输出a;
}
}
class B implements prt{
int b = 4;
public void prtln()
{
//输出b;
}
}
public class MyInterfaceDemo
{
public static void dost(prt c)
{
c.prtln();
}
public static void main(String[] args)
{
A a1 = new A();
B b1 = new B();
MyInterfaceDemo.dost(a1);
MyInterfaceDemo.dost(b1);
}
} |