JAVA的接口学习

2 篇文章 0 订阅

1、接口的定义:

JAVA接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的定义没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的功能

2、格式

[public] interface 接口名称 []extends 父接口1,父接口2,父接口3]{

//静态常量

[public] [static] [final] 数据类型  常量名=常量值;

//抽象方法

[public] [abstract] [native] 返回值类型 方法名(参数列表);

 

}

3、类实现接口格式:

  【修饰符】 class 类名 【extends 父类名】【implements 接口1,接口2,接口3,】{

        类成员变量和成员方法;

        为接口1中的所有方法编写方法体,实现接口1;

        为接口2中的所有方法编写方法体,实现接口2;

         为接口3中的所有方法编写方法体,实现接口3;

   }

4、接口的特性:

     1)接口不能被实例化;

      2)接口中所有方法都是抽象的;

     3)接口中的字段必须是静态常量

     4)接口中所有的成员都必须是public

      5)接口可以被多重实现或者继承

     6)接口没有构造器

5、如何访问接口的常量

   接口名.常量名

代码分享:

public interface MyInterface1 {
    public static final int a=1;
    //等同于
    int b=2;
    public abstract void eat1();
    //等同于
    void walk1();

}
public class DogInterface implements MyInterface1 {

    @Override
    public void eat1() {
        System.out.println("狗狗爱吃肉");
    }

    @Override
    public void walk1() {
        System.out.println("狗狗爱跑步");
    }

    public void sleep(){
        System.out.println("狗狗爱睡觉");
    }
}
public class CatInterface implements MyInterface1 {
    @Override
    public void eat1() {
        System.out.println("猫猫爱吃鱼");
    }

    @Override
    public void walk1() {
        System.out.println("猫猫爱爬墙");
    }
}
public class InterfaceIest {
    public static void main(String[] args) {
        MyInterface1 d1 = new DogInterface();//多态性,接口的引用----->指向类的实例对象
        d1.eat1();
        d1.walk1();
        //d1.sleep();//编译通不过,因为编译时认为的d1是MyInterface,MyInterface并没有这个sleep方法
        //d1.b;//不能通过实例化对象来访问接口的常量

        MyInterface1 c1 = new CatInterface();
        c1.walk1();
        c1.eat1();

        DogInterface d2 = new DogInterface();
        d2.eat1();
        d2.walk1();
        d2.sleep();
        System.out.println("如何访问接口的常量");
        //如何访问接口的常量
       System.out.println(MyInterface1.a+"    b:"+ MyInterface1.b);

    }
}

//结果

狗狗爱吃肉
狗狗爱跑步
猫猫爱爬墙
猫猫爱吃鱼
狗狗爱吃肉
狗狗爱跑步
狗狗爱睡觉
如何访问接口的常量
1    b:2

 

  

一个接口可以实现多重继承,一个接口可以继承多个接口

public interface MyInterface2 {
    String name="yang";
    void eat2();

}
public interface MyInterface3 extends MyInterface1,MyInterface2{
    public void eat3();

}

一个类可以同时实现多个接口

public class MyInterface implements MyInterface1, MyInterface2 {
//实现了两个接口的类
    //实现了两个接口中所有的方法
    public void eat1() {
        System.out.println("第一次吃饭!!!");
    }

    public void walk1() {
        System.out.println("第一次走路!!!");
    }

    public void eat2(){
        System.out.println("第二次吃饭!!!");
    }


}
public class MyInterfaceTest implements MyInterface3 {
    @Override
    public void eat1() {
        System.out.println("一天三顿:第一次吃饭");
    }

    @Override
    public void eat2() {
        System.out.println("一天三顿:第二次吃饭");

    }

    @Override
    public void eat3() {
        System.out.println("一天三顿:第三次吃饭");
    }

    @Override
    public void walk1() {
        System.out.println("一天三顿:第一次走路");
    }
}

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值