java之接口(interface)

什么是接口?

接口可以理解为是抽象类抽象到极致,它还是一个类结构,它不能用class来修饰,应该改用interface来修饰,接口通常是为了定义规则。

接口中成员有什么特点?

  1. 属性:不能含有一般属性,只能含有公有的静态的常量修饰的属性—public static final,可以直接默认写数据类型+变量名+赋值,(public static final)修饰可以省略.
  2. 方法:不能含有一般方法,只能含有公有的抽象的方法(在jdk1.8版本之后,可以通过defualt修饰方法来写具体的方法)
  3. 块:不能含有一般程序块 ,也不能含有static块(块本身就是具体的事情,接口中不让有具体的事情)
  4. 构造方法:不能含有构造方法(方法都是只有结构不能有方法体)

如何使用接口、创建对象

  1. 接口不能创建对象
  2. 只能通过子类implements实现接口来创建对象做事情
  3. 接口可以多实现(public class A implements B,C,D{})

接口与别的类的关系

  1. 接口不能继承其他类(最抽象),可以多继承接口
  2. 抽象类可以直接多实现接口
  3. 具体类不可以直接多实现接口(必须将接口中的抽象方法具体化,或者自己变成抽象类或接口)

测试示例:
接口类:

public interface TestInterface {
    
    

    public static final String name="chenhui";
    //相当于 String name="chenhui";


    public abstract void test();
    //相当于void test();

    
    //jdk1.8版本之后使用default关键字修饰的方法可以写具体方法
    public default void method(){
    
    
        
    }
}
public interface InterfaceOne {
    
    
    
    
    void testOne();

}
public interface InterfaceTwo {
    
    
    void testTwo();
}

子类实现接口:

public class Test implements TestInterface {
    
    

    //具体类必须实现接口中的抽象方法(否则要自己要变成抽象类或接口)
    @Override
    public void test() {
    
    

    }


}

子类可以多实现接口

public class Test implements TestInterface,InterfaceOne {
    
    


    @Override
    public void testOne() {
    
    

    }

    @Override
    public void test() {
    
    

    }
}

接口可以多继承接口:

public interface TestInterface extends InterfaceOne,InterfaceTwo{
    
    


}

猜你喜欢

转载自blog.csdn.net/weixin_45608165/article/details/112941835