zoukankan      html  css  js  c++  java
  • java中接口的定义与实现

    1、定义接口
        使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,当中接口体由常量定义和方法定义两部分组成。定义接口的基本格式例如以下:

    [修饰符] interface 接口名 [extends 父接口名列表]{

    [public] [static] [final] 常量;
    [public] [abstract] 方法;
    }
    修饰符:可选,用于指定接口的訪问权限,可选值为public。假设省略则使用默认的訪问权限。
    接口名:必选參数,用于指定接口的名称,接口名必须是合法的Java标识符。普通情况下,要求首字母大写。
    extends 父接口名列表:可选參数,用于指定要定义的接口继承于哪个父接口。当使用extendskeyword时,父接口名为必选參数。
    方法:接口中的方法仅仅有定义而没有被实现。

    比如,定义一个用于计算的接口,在该接口中定义了一个常量PI和两个方法,详细代码例如以下:

    public interface CalInterface 
    {
        final float PI=3.14159f;//定义用于表示圆周率的常量PI
        float getArea(float r);//定义一个用于计算面积的方法getArea()
        float getCircumference(float r);//定义一个用于计算周长的方法getCircumference()
    }
    
    注意:
        与Java的类文件一样,接口文件的文件名称必须与接口名同样。
    实现接口
    接口在定义后,就能够在类中实现该接口。在类中实现接口能够使用keywordimplements,其基本格式例如以下:
    [修饰符] class <类名> [extends 父类名] [implements 接口列表]{
    }
    修饰符:可选參数,用于指定类的訪问权限,可选值为public、abstract和final。
    类名:必选參数,用于指定类的名称,类名必须是合法的Java标识符。普通情况下,要求首字母大写。
    extends 父类名:可选參数,用于指定要定义的类继承于哪个父类。当使用extendskeyword时,父类名为必选參数。
    implements 接口列表:可选參数,用于指定该类实现的是哪些接口。当使用implementskeyword时,接口列表为必选參数。当接口列表中存在多个接口名时,各个接口名之间使用逗号分隔。
        在类中实现接口时,方法的名字、返回值类型、參数的个数及类型必须与接口中的全然一致,而且必须实现接口中的全部方法。比如,编写一个名称为Cire的类,该类实现5.7.1节中定义的接口Calculate,详细代码例如以下:

    public class Cire implements CalInterface 
    {
        public float getArea(float r) 
        {
            float area=PI*r*r;//计算圆面积并赋值给变量area
            return area;//返回计算后的圆面积
        }
        public float getCircumference(float r) 
        {
            float circumference=2*PI*r;      //计算圆周长并赋值给变量circumference
            return circumference;           //返回计算后的圆周长
        }
        public static void main(String[] args) 
        {
            Cire c = new Cire();
            float f = c.getArea(2.0f);
            System.out.println(Float.toString(f));
        }
    }
    
          在类的继承中,仅仅能做单重继承,而实现接口时,一次则能够实现多个接口,每一个接口间使用逗号“,”分隔。这时就可能出现常量或方法名冲突的情况,解决该问题时,假设常量冲突,则须要明白指定常量的接口,这能够通过“接口名.常量”实现。假设出现方法冲突时,则仅仅要实现一个方法就能够了。以下通过一个具体的实例具体介绍以上问题的解决方法。

  • 相关阅读:
    Java实现 LeetCode 30 串联所有单词的子串
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 27 移除元素
    字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4344563.html
Copyright © 2011-2022 走看看