Android中Interface简介

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

  1. public interface MyInterface {  
  2.       
  3. }  
public interface MyInterface {

}
语法还是很清晰的哦, 类的关键字是class、而接口改为interface即可哈。


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

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

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

3、interface的小小规则

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

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

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

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


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

  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. }  
public interface MyInterface {

    public static final String name = "test";

    public void walk(); //我是抽象方法,此处省略了abstract

    public void jump();  //我是抽象方法

}
疑问:怎么回事?抽象方法不写abstract也可以?

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

  1. public interface MyInterface {  
  2.       
  3.     public static final String name = “test”;  
  4.       
  5.     public abstract void fly(); //也可以显示的加上abstract,但人啊就是越来越懒  
  6.       
  7. }  
public interface MyInterface {

    public static final String name = "test";

    public abstract void fly(); //也可以显示的加上abstract,但人啊就是越来越懒

}


c、访问权限,接口啊接口,就是为了给别人用的,记得无论你写与不写,所有的一切都是public

  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. }  
public interface MyInterface {

     static final String name = "test"; //默认给你加上public的,放心哥们

     void walk();  //抽象方法也同理,隐式的有public的哦

     void jump();

     abstract void fly();

}
隐式与显式,真是精髓思想,记得人很懒………………

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

  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. }  
public interface MyInterface extends FirInterface, SecInterface, ThirdInterface{

     static final String name = "test";

     void jump();

     abstract void fly();

}
你没看错,还用的关键字extends,哈哈,java牛逼呀。。接口可不能extends一个类、也不能implements一个接口。接口可不能extends一个类、也不能implements一个接口。接口可不能extends一个类、也不能implements一个接口。(重要的事情再说三遍)。。。


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

  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. }  
public class HelloInterface implements MyInterface {

    @Override
    public void quickWalk() {
        // TODO Auto-generated method stub

    }

    @Override
    public void jump() {
        // TODO Auto-generated method stub

    }

    @Override
    public void fly() {
        // TODO Auto-generated method stub

    }

}
答:用implements,将抽象方法进行具体的实现,只要你implements(实现)一个接口(interface),就必须将抽象方法进行(Override:中文称为重写)。


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







转自叫我王员外就行的博客:http://blog.csdn.net/cadi2011/article/details/50520606

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值