• 接口(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语法:单继承、多实现、这算剧透嘛?

  • 相关阅读:
    P1363-幻象迷宫
    P1582-倒水
    P2123-皇后游戏
    P1233-木棍加工
    P1052-过河
    P1541-乌龟棋
    P1736-创意吃鱼法
    P1417-烹调方案
    LeetCode--043--字符串相乘(java)
    LeetCode--041--缺失的第一个整数(java)
  • 原文地址:https://www.cnblogs.com/williamjie/p/9120291.html
Copyright © 2020-2023  润新知