java 接口详解(2)实例

接口 interface

1.接口的概念
2.接口是一种标准,所有实现该接口的子类都要实现这个标准。
3.接口也是一种契约,所有的实现该接口的子类都要实现该接口的条款
4.接口也是一种身份特征,所有的子类都具有该身份特征。
5.接口里面的所有方法都是抽象的,公有的。
6.接口里所有的成员变量都是常量。
7.接口可以继承接口

接口可以说是抽象类的抽象类
接口只定义抽象方法,但是不提供实现的方法,实现的方法是它的实例化类提供的

语法

public  interface USBInterface{//接口名为USBInterface
  void open();
  void close();
}

一个接口是可以继承另外一个接口的

//这里写了一个抽象类Kingston来实现USBInterface中的部分方法,implement是类实现接口的关键字
//这里的close方法被注释掉了,所以此Kingston类是抽象类,因为没有完全实现接口里的抽象方法,若全部实现了就叫做基类
public  abstract class Kingston implements USBInterface {
    public void open(){
        System.out.println("--open--");
    }
//    public void close(){    
//        System.out.println("--close--");
//    }
//
//    public static void main(String[] args) {
//        Kingston ton =new Kingston();
//        ton.open();
//        ton.close();
//    }

}

我们再写一个类来实现Kinston抽象类没实现的的功能,即类KingstonA继承Kingston抽象类,KingstonA类是Kingston抽象类的子类

public class KingstonA extends Kingston{
    public void close(){
        System.out.println("--close--");
    }

    public static void main(String[] args) {
        KingstonA ton =new KingstonA();
        ton.close();

    }
}

接口和接口之间的继承关系

定义一个接口InterfaceA

public interface InterfaceA{
    public void buyFruit();

}

定义一个另外一个接口InterfaceB

public interface InterfaceB {
    public void buyFood();
}

把InterfaceC继承前两个接口(接口可以多继承)

public interface InterfaceC extends InterfaceA,InterfaceB {
    void buyCar();
}

此时如果要写一个基类来实现接口InterfaceC的方法,必须把InterfaceA和InterfaceB里面定义的抽象方法一起实现
Example

public class Buyer implements InterfaceC{
    public void buyFood(){
        System.out.println("--buy food--");
    }
    public void buyFruit(){
        System.out.println("--buy fruit--");
    }
    public void buyCar(){
        System.out.println("--buy car--");
    }

    public static void main(String[] args) {
        Buyer buyer =new Buyer();
        buyer.buyFood();
        buyer.buyFruit();
        buyer.buyCar();
    }
}

注意

  • 接口里面可以不定义任何方法,但是如果要写方法,必须是抽象方法(即没有方法的实现)
  • 接口与接口之间可以继承,并且一个接口可以继承多个接口
  • 若要写一个类来实现接口里面的方法,这个类实现了全部方法就是基类,若没能全部实现,此类还是抽象类abstract,没实现的类可由子类来实现

猜你喜欢

转载自blog.csdn.net/qq_37913435/article/details/81414925