Java中引进的接口

抽象类是从多个类中抽象出来的模板,如果将这种抽象进行的更加彻底一点,就可以提炼出一种更加特殊的“抽象类”—— 接口(interface)

  • 接口的概念
    我们在日常生活中经常会遇见到接口,这种实体类事物,比如:我们使用USB接口可以连接U盘,不可以用别的接口连接U盘,因此,USB接口就是定义的一个规范。我们在Java中所定义的接口也是遵循这样一种方法来的,接口定义了某一批类所需要遵守的规范,接口并不关心这些类的内部实现方法细节,它只规定了这批类必须提供的方法。因此接口定义的是多个类共同的公共的行为规范,这些行为是与外部交流的通道,这就意味着接口里通常是定义一组公用的方法。
  • 接口的定义
    接口和类的定义不同,我们不使用class关键字来定义接口,而是使用interface关键字来定义接口。我们来看一下接口定义的基本语法规则:
public interface MyInterface {
    //这里的public关键字可以换成其他的修饰符用来定义,
}

修饰符可以是public或者缺省,如果省略了public关键字,则默认采用包权限的访问控制符,即只有在相同包结构下才可以访问接口。
接口名应与类名采用相同的语法规则,每个单词首字母应该大写,使用的词语应该见名知意。
一个接口可以有多个直接父类,但接口只能继承接口,不能继承类。

public interface MyInterface {
    private int a = 1;//此语法是错误的
    {
        
        int b = 1;
    }
    public MyInterface(){
	}
}

由于接口定义的是一种规范,因此接口里不能包含构造器和初始化定义。接口中只能包含成员变量(只能是静态的)、方法(只能是抽象实例方法,类方法。默认方法或者私有方法)、内部类定义。

public interface MyInterface {
    int a = 1;//静态的成员变量
    class abs {
        
        
    }//内部类
    
    enum status {
        
    }//内部枚举类
    void findArea();//抽象方法
}

我们上面定义的成员变量没有添加任何关键字,但是没有报错,其实在系统中会自动为这些成员变量增加static 和final两个修饰符,也就是说,不管是否使用 public static final修饰符,接口中的成员变量总是使用这三个修饰符来修饰。而且接口中没有代码块和内部类,因此我们在接口中的成员变量只能在定义时指定默认值。

public interface MyInterface {
    int a = 1;
    public static final int  b =2;
    }

上面的代码中两个定义的成员变量的方法都是可以的,接口里定义的方法只能是抽象方法,类方法,默认方法和私有方法,因此如果不是定义默认方法、类方法或者私有方法,系统会为普通方法增加abstract修饰符;接口中的方法总是使用 public abstract 关键字来修饰。接口中的普通方法不能有方法体。

public interface MyInterface {
    void findArea();
    public abstract void set();
}

上面的这两种定义方法都是可以的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最好的文酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值