栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java接口

目录

定义与实现

定义

实现

示例

接口多态

示例

接口多继承

示例


定义与实现

定义

定义:用interface关键字来定义一个接口。接口就是规定定义一组规则。继承是一个“是不是”的关系,而接口实现则是“能不能”的关系。

接口格式:

[修饰符] interface 接口名[extends 父类接口名列表]{ 
     [public] [static] [final]常量;
     [public] [abstract]方法;//接口中的方法只有定义而没有实现
}

实现

实现:接口在定义后,可以在类中实现该接口。通过使用关键字implements让子类实现接口。

基本格式:

[修饰符] class<类名> [extends 父类名][impolements 接口列表]{}

示例

给出半径,求圆的面积和周长

interface CallInterface{ //定义一个接口
    final float PI=3.14159f;//定义用于表示圆周率的变量PI
    float getArea(float r);//定义一个用于计算面积的方法getArea()
    float getCircumference(float r);//定义一个用于计算周长的方法getCircumstance()
}
 
public class Cire implements CallInterface{
    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));
    }
}

编译结果:

12.56636

接口多态

通过接口来引用类。定义一个接口类型的引用变量来引用实现接口的类示例,当这个引用调用方法时,它会根据实际引用的类的实例来判断具体调用哪个方法。

示例
interface InterA{ //定义接口InterA
    void fun();
}
​
class B implements InterA{//实现接口InterA的类B
    public void fun(){
        System.out.println("This is B");
    }
}
​
class C implements InterA{//实现接口InterA的类C
    public void fun(){
        System.out.println("This is C");
    }
}
​
public class Test {
    public static void main(String[] args) {
        InterA a;
        a=new B();
        a.fun();
        a=new C();
        a.fun();
    }
}

编译结果:

This is B
This is C

上列充分利用了“一个接口,多个方法”,展示了java的动态多态性。

接口多继承

在java中,类的多继承是不合法的,但接口允许多继承。

示例
public interface Attack {
    public abstract void attack();
}
public interface medic {
    public abstract void medictest();
}
public class medicman implements Attack,medic{
    @Override
    public void attack(){
        System.out.println("医务兵也可以射击");
    }
    @Override
    public void medictest(){
        System.out.println("医务兵可以治疗他人");
    }
}
public class shoottingman implements Attack{
    @Override
    public void attack(){
        System.out.println("步兵可以攻击");
    }
}
public class demotest {
    public static void main(String[] args) {
        shoottingman test=new shoottingman();
        test.attack();
        medicman test2=new medicman();
        test2.medictest();
        test2.attack();
    }
}

编译结果:

示例可以得出:步兵只是继承了射击的接口,所以只能有射击的方法。医务兵同时继承了射击和医疗的接口,因此可以同时有射击和医疗的方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949478.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号