1、接口的地位等同于class,接口中的所有方法都是抽象方法。
public interface InterfaceTest
{
public abstract void test();
public void test1();//省略掉关键字abstract,这样也正确,
}
由于接口中的所有方法都是抽象方法。在声明接口中的方法时,可以使用abstract关键字,也可以不使用。通常情况下,都会省略掉abstract关键字。
2、可以将接口看作是特殊的抽象类(抽象类中可以有具体方法,也可以由抽象方法,而接口中只能有抽象方法,不能有具体方法)
3、类可以实现接口,实现使用关键字implements表示,代表了某个类实现了某个接口。
4、一个类实现了某个接口,那么该类必须要实现接口中声明的所有方法。如果该类是个抽象类,那么就无需实现接口中的方法了;java是单继承的,也就是说某个类只能有唯一一个父类;一个类可以实现多个接口,多个接口可以使用逗号进行分隔。
public Test4 { public static void
{ MyClass mc = new MyClass();
mc.output1(); mc.output2(); } } interface MyInterface { public void output1();
} interface MyInterface2 { public void output2();
} class
implements
{ public void output1()
{ System.out.println( "output" ); } public void output2()
{ System.out.println( "output2" ); } } |
5、多态:就是父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向实现该接口的类的实例。关于接口与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换方式完全一样。
上例中如果定义:
MyInterface mc = new MyClass();就是一种多态。
6、关键字static:可以用于修饰属性,也可以用于修饰方法和类。