接口(interface)那点事
1、接口(interface),在 java中有这个类型哦,这是语法哦。
- public interface MyInterface {
- }
2、接口(interface)与 接口(API) ?
答:相信大家伙一直没明白吧,老话再讲,记得中文博大精深,刚好interface与API都翻译为接口,而API全称是应用程序接口(Application Program Interface)。
API昵指的是提供给他人调用的方法或者函数,具体一点讲昵就是 public 的 方法。而interface就是java中规定一种数据类型(数据结构、对象组合)。
3、interface的小小规则
a、interface中可以有变量,而且它必须是静态(static)的、而且必须是final的。
- public interface MyInterface {
- public String name = "test"; //这里隐藏了static final ,你不写,编译器也会给你默认加上static 与 final,相当于简写啦
- }
答:这里要插播一个思想,那就是隐式与显式的思想。因为interface要求必须是static加上final。所以你不写也没关系,默认(隐式)就会给你加上static与final。
- public interface MyInterface {
- public static final String name = "test"; //显式的写上static与final 也一样啦,人啊越进步越懒,谁老想写啊
- }
b、interface里面的方法,必须全部是抽象方法
- public interface MyInterface {
- public static final String name = "test";
- public void walk(); //我是抽象方法,此处省略了abstract
- public void jump(); //我是抽象方法
- }
答:哈哈,刚才上面就讲啦?语法已经规定所有方法必须是抽象方法,所以嘛你可以不写abstarct,默认(隐式)编译器会给你加上abstract,呵呵
- public interface MyInterface {
- public static final String name = "test";
- public abstract void fly(); //也可以显示的加上abstract,但人啊就是越来越懒
- }
c、访问权限,接口啊接口,就是为了给别人用的,记得无论你写与不写,所有的一切都是public
- public interface MyInterface {
- static final String name = "test"; //默认给你加上public的,放心哥们
- void walk(); //抽象方法也同理,隐式的有public的哦
- void jump();
- abstract void fly();
- }
d、接口可以继承一个接口,想不到吧,接口可以继承(扩展)多个、多个、多个(重要的事说三遍)接口。
- public interface MyInterface extends FirInterface, SecInterface, ThirdInterface{
- static final String name = "test";
- void jump();
- abstract void fly();
- }
e、有了接口我们怎么用啊? 我们要将我们的类去实现接口,要用到implements关键字啦
- 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
- }
- }
插播:extends与implements我将单独拉出来两篇笔记哦!!java语法:单继承、多实现、这算剧透嘛?