java接口学习

  1. 什么是接口
    接口是一种特殊的抽象类,接口只提供方法的原形,而没有具体的方法实现。在接口中只包含抽象方法和常量,不能有变量、初始化块和构造方法。就好比模型手机和实际手机,大小和外观都一样。而模型只是一个空壳,并不能使用,如果想它实现实际手机的功能,还需要往里面安装一系列的功能配件。
    接口例子:
interface student{
    int CLASS_NAME = 0701;   //设置班级
    void learning();   //设置学习方法
    void eat();    //设置吃饭方法
    void sleep();  //设置睡觉方法
}

class StudentReal implements student {
     public void learning(){
       System.out.println("学生正在学习");    
     }

     public void eat(){
       System.out.println("学生正在吃饭");    
     }
     public void sleep(){
       System.out.println("学生正在睡觉");    
     }
}

2.接口的使用
接口不能单独实例化,必须通过接口的实现类来完成实例化。接口的实现类,必须全部实现接口中所有的方法。接口就是标准,用来隔离具体的实现。接口作为一种规范,便于扩展,利于解耦。
实现类实现接口可以通过关键字implements,格式:
[修饰符] class <类名> [extends 父类名][implements 接口名列表]{}
如上面例子中StudentReal实现接口student。
3.接口的特征
(1)java接口中的成员变量默认都是public 、static、final类型的,而对于public、static、final都可以省略。
(2)接口中的方法默认都是public、abstract类型,并且public和abstract都可以省略。接口的方法没有方法体,不能被实例化。如下例子

interface A{
int COUNT = 1;
void method();
public abstract void method2();
}

(3)接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。变量必须初始化,并且方法必须是抽象方法,否则会报错。如下例子

public interface A{
int var;   //错,var必须是常量,必须显示初始化
protected void method1();  //错,接口中的方法必须是public类型
static void method2();  //错,接口中不能包含静态方法
}

(4)接口不能有构造方法,不能被实例化。

public interface A{
  public A(){};  //错,接口中不能包含构造方法。
  void method();
}

(5)一个接口不能实现另一个接口,但是可以继承多个其他的接口,不能继承普通类。如下:

public interface A{
  void methodA();
}
public interface B{
  void methodB();
}
public interface C extends A,B{     //C称为复合接口
  void methodC();
}

(6)实现某个java接口的时候,必须实现接口中的所有抽象方法,否则,这个类必须声明为抽象的。
(7)java中不允许创建接口的实例(实例化接口),但允许定义解耦类型的引用变量,该引用变量引用实现该接口的类的实例。如下:

public class B implements A{
    A a = new B();   //引用变量a被定义为A接口类型,引用了B实例
    A a = new A();   //错误,接口不允许直接实例化
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值