接口(interface)那点事

 

1、接口(interface),在 java中有这个类型哦,这是语法哦。

[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3. }  
语法还是很清晰的哦, 类的关键字是class、而接口改为interface即可哈。

2、接口(interface)与 接口(API) ?

答:相信大家伙一直没明白吧,老话再讲,记得中文博大精深,刚好interface与API都翻译为接口,而API全称是应用程序接口(Application Program Interface)。

API昵指的是提供给他人调用的方法或者函数,具体一点讲昵就是 public 的 方法。而interface就是java中规定一种数据类型(数据结构、对象组合)。

3、interface的小小规则

a、interface中可以有变量,而且它必须是静态(static)的、而且必须是final的。

[java]  view plain  copy
  1. public interface MyInterface {  
  2.     public String name = "test"; //这里隐藏了static final ,你不写,编译器也会给你默认加上static 与 final,相当于简写啦  
  3. }  
既然说是static与final的变量,怎么不写编译器也不报错昵?坑?

答:这里要插播一个思想,那就是隐式与显式的思想。因为interface要求必须是static加上final。所以你不写也没关系,默认(隐式)就会给你加上static与final。

[java]  view plain  copy
  1. public interface MyInterface {  
  2.     public static final String name = "test"; //显式的写上static与final 也一样啦,人啊越进步越懒,谁老想写啊  
  3. }  
插播:这下子知道为啥接口的变量,必须要你初始化啦吧?哈哈,final嘛,所以嘛哈哈。。

b、interface里面的方法,必须全部是抽象方法

[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3.     public static final String name = "test";  
  4.       
  5.     public void walk(); //我是抽象方法,此处省略了abstract  
  6.       
  7.     public void jump();  //我是抽象方法  
  8.       
  9. }  
疑问:怎么回事?抽象方法不写abstract也可以?

答:哈哈,刚才上面就讲啦?语法已经规定所有方法必须是抽象方法,所以嘛你可以不写abstarct,默认(隐式)编译器会给你加上abstract,呵呵

[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3.     public static final String name = "test";  
  4.       
  5.     public abstract void fly(); //也可以显示的加上abstract,但人啊就是越来越懒  
  6.       
  7. }  
c、访问权限,接口啊接口,就是为了给别人用的,记得无论你写与不写,所有的一切都是public
[java]  view plain  copy
  1. public interface MyInterface {  
  2.       
  3.      static final String name = "test"; //默认给你加上public的,放心哥们  
  4.       
  5.      void walk();  //抽象方法也同理,隐式的有public的哦  
  6.       
  7.      void jump();  
  8.       
  9.      abstract void fly();  
  10.       
  11. }  
隐式与显式,真是精髓思想,记得人很懒………………

d、接口可以继承一个接口,想不到吧,接口可以继承(扩展)多个、多个、多个(重要的事说三遍)接口。

[java]  view plain  copy
  1. public interface MyInterface extends FirInterface, SecInterface, ThirdInterface{  
  2.       
  3.      static final String name = "test";  
  4.       
  5.      void jump();  
  6.       
  7.      abstract void fly();  
  8.       
  9. }  
你没看错,还用的关键字extends,哈哈,java牛逼呀。。接口可不能extends一个类、也不能implements一个接口。接口可不能extends一个类、也不能implements一个接口。接口可不能extends一个类、也不能implements一个接口。(重要的事情再说三遍)。。。

e、有了接口我们怎么用啊? 我们要将我们的类去实现接口,要用到implements关键字啦

[java]  view plain  copy
  1. public class HelloInterface implements MyInterface {  
  2.   
  3.     @Override  
  4.     public void quickWalk() {  
  5.         // TODO Auto-generated method stub  
  6.           
  7.     }  
  8.   
  9.     @Override  
  10.     public void jump() {  
  11.         // TODO Auto-generated method stub  
  12.           
  13.     }  
  14.   
  15.     @Override  
  16.     public void fly() {  
  17.         // TODO Auto-generated method stub  
  18.           
  19.     }  
  20.       
  21. }  
答:用implements,将抽象方法进行具体的实现,只要你implements(实现)一个接口(interface),就必须将抽象方法进行(Override:中文称为重写)。

插播:extends与implements我将单独拉出来两篇笔记哦!!java语法:单继承、多实现、这算剧透嘛?

猜你喜欢

转载自www.cnblogs.com/williamjie/p/9120291.html