标签:interface abstract public 接口 关键字
如果定义一个类时,全部由抽象方法和全局常量所组成,那么这种类就称为接口,接口是使用interface关键字进行定义的,接口同样存在抽象方法,但接口对象无法进行实例化。
定义一个接口:
interface A { // 定义接口 public static final String INFO = "Hello World ."; public abstract void print() ; } interface B { public abstract void get() ; } |
接口的使用原则:
·每一个接口必须定义子类,子类使用implements关键字实现接口;
·接口的子类(如果不是抽象类)则必须覆写接口之中所定义的全部抽象方法;
·利用接口的子类,采用对象的向上转型方式,进行接口对象的实例化操作。
子类实现接口的语法格式:
class 子类 [extends 父类] [implemetns 接口1,接口2,...] {} |
每个子类可以实现多个接口,但只能继承一个父类
例:让子类实现接口:
interface A { // 定义接口 public static final String INFO = "Hello World ."; public abstract void print() ; } interface B { public abstract void get() ; } class X implements A,B { // 同时实现了两个接口 public void print() { //方法覆写 System.out.println("Hello World .") ; } public void get() { System.out.println(INFO) ; } } public class Test { public static void main(String args[]) { A a = new X() ; B b = new X() ; a.print() ; b.get() ; } } |
如果一个类既要实现接口又要继承抽象类,则应该采用先继承后实现的方法
interface A { // 定义接口 public static final String INFO = "Hello World ."; public abstract void print() ; } interface B { public abstract void get() ; } abstract class C { public abstract void fun() ; } class X extends C implementsA,B { // 同时实现了两个接口 public void print() { //方法覆写 System.out.println("Hello World .") ; } public void get() { System.out.println(INFO) ; } public void fun() { System.out.println("世界,你好!") ; } } public class Test { public static void main(String args[]) { A a = new X() ; B b = new X() ; C c = new X() ; a.print() ; b.get() ; c.fun() ; } } |
接口的访问权限只有一种,即:public,就算定义接口时没有写上public,那最终也是public;
在java中,每一个抽象类都可以同时继承多个接口,但反过来讲,一个接口却不能继承抽象类,可是在java中,一个接口却可以同时继承多个接口,以实现接口的多继承操作
interface A { public void printA() ; } interface B { public void printB() ; } interface C extends A,B{ // 一个接口继承了多个接口 public void printC() ; } class X implements C { public void printA() {} public void printB() {} public void printC() {} } |
在开发之中,内部类是永远不会受到概念限制的,在一个类中可以定义内部类,在一个抽象类之中也可以定义抽象内部类,在一个接口里面也可以定义内部抽象类或内部接口,但是从实际的开发来讲,用户自己去定义内部抽象类或内部接口的时候是比较少见的(Android开发中见过内部接口),而且在定义内部接口的时候如果使用了static,表示是一个外部接口。
interface A { public void printA() ; static interface B { //外部接口 public void printB() ; } } class X implements A.B { public void printB() { System.out.println("Hello World .") ; } } public class Test { public static void main(String args[]) { A.B temp = new X() ; temp.printB() ; } } |
接口的三大主要功能:
·制订操作标准;
·表示一种能力;
·将服务器端的远程方法视图暴露给客户端。
标签:interface abstract public 接口 关键字
原文地址:http://9882931.blog.51cto.com/9872931/1620637