关键词搜索

源码搜索 ×
×

一篇文章带你搞定 java 中接口的基本概念

发布2020-01-09浏览609次

详情内容

接口是Java 中最重要的概念之一,可以认为是一种特殊的类,由全局常量和公共的抽象方法组成

interface 接口名称{
	全局常量;
	抽象方法;
}

    在接口中的抽象方法必须定义为 public 访问权限,这是绝对不可改变的

    在接口中如果不写 public,则也是 public 访问权限
    因为很多的 Java 程序,经常可以看到编写接口方法时,省略了 public,不管写不写接口中的方法都是 public

    接口的定义:

    interface A{
        public static final String AUTHOR = "Java"; //定义全局常量
        public abstract void print(); //定义抽象方法
        public abstract String getInfo(); //定义抽象方法
    }
    
      5

    可以简化为:

    interface A{
        String AUTHOR = "Java"; //定义全局常量
        void print(); //定义抽象方法
        String getInfo(); //定义抽象方法
    }
    
      5

    与抽象类一样,接口若要使用也必须通过子类,子类通过 implements 关键字实现接口

    //实现接口
    class 子类 implements 接口A,接口B,...{
    }
    
    • 1
    • 2
    • 3

    可以看出一个子类可以同时实现多个接口,实际上摆脱了 Java 的单继承局限

    interface A{
        String AUTHOR = "Java";
        void print();
        void getInfo();
    }
    interface B{
        void say();
    }
    class X implements A,B{
        public void say(){
            System.out.println("覆写 B 接口中的抽象方法");
        }
        public void getInfo(){
            System.out.println("覆写 A 接口中的抽象方法");
        }
        public void print(){
            System.out.println("覆写 A 接口中的抽象方法");
        }
    }
    
    public class Test{
        public static void main(String[] args) {
            X x = new X();
            x.say();
            x.print();
        }
    }
    
      5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    如果开发一个子类既要实现接口又要继承抽象类,可以:

    class 子类 extends 抽象类 implements 接口A,接口B,...{
    }
    
    • 1
    • 2
    interface A{
        String AUTHOR = "Java";
        void print();
        void getInfo();
    }
    abstract class B{ //定义抽象类
        public abstract void say();
    }
    class X implements A,B{
        public void say(){
            System.out.println("覆写 B 接口中的抽象方法");
        }
        public void getInfo(){
            System.out.println("覆写 A 接口中的抽象方法");
        }
        public void print(){
            System.out.println("覆写 A 接口中的抽象方法");
        }
    }
    
      5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    由于以上程序中抽象类和接口本身都有抽象方法,所以实现类中必须覆写 3 个抽象方法,此外在 Java 中是允许一个抽象类实现多个接口

    interface A{
        String AUTHOR = "Java";
        void print();
        void getInfo();
    }
    abstract class B implements A{ //此时抽象类中存在 3 个抽象方法
        public abstract void say();
    }
    class X extends B{
        public void say(){
            System.out.println("覆写 B 接口中的抽象方法");
        }
        public void getInfo(){
            System.out.println("覆写 A 接口中的抽象方法");
        }
        public void print(){
            System.out.println("覆写 A 接口中的抽象方法");
        }
    }
    
      5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    Java中一个接口是不允许继承抽象类的,但是允许一个接口继承多个接口

    interface 子接口 extends 父接口A,父接口B,...{
    }
    
    • 1
    • 2

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载