1、接口是什么

  前面我们说到继承,父类喝子类比较,相对来说,父类是一个比子类更抽象的类。这个抽象提现在两个方面:

    1、父类中的属性和方法比子类要少;

    2、在父类的方法中,我们只能笼统的描述,而子类可以更具体一点。

  在继承的层次结构中,每个新子类都使类变的越来越明确喝具体。如果从一个子类追溯到父类,类就变得更通用,更不明确,类的设计应该确保父类包含它的子类的共同特征,有时候一个父类就会设计得非常抽象,以至于他没有任何具体的实例。这个时候我们可以定义这样一个类,类中的方法只有方法的定义,没有方法体,如果一个类中的所以方法都没有方法体,这个类我们就可以叫做接口。

  接口格式 :

  public interface 接口名{ }

  与常规类中的class 不一样,接口用的是interface 。

  接口的属性定义格式:

  public static final 属性类型 属性名=初始值;

  static:静态的,修饰属性或者方法,则可以通过类名/接口名直接使用。

  final:不可变的,修饰属性时,属性必须初始化。

  接口的方法定义

  public abstract 方法返回值类型 方法名 (参数类型 参数名,....);

  abstract:抽象的,修饰方法,则方法不能有方法体。

  因为接口中的方法都是抽象方法,所以接口是没有构造方法的,不能创建对象。我们定义一个接口的作用是用来给子类扩展的,当然接口同样是一组数据类型,与继承不一样的是,一个类只能继承一个父类 但是可以实现多个接口。

  创建一个移动硬盘接口 

//创建一个移动硬盘接口
public interface storage {
    //定义品牌属性,初始化为 三星 
    public static final String brand="三星";
    //定义尺寸属性,初始化为 4
    public static final int Size=4;
    
    //定义储存图片的方法
    public void picture();
    //定义储存音乐的方法
    public void Music();
}

创建好了接口,那么就可以去使用接口。当在一个创建好了一个类,要使用接口,就会用到一个关键字:implements。

  使用接口的格式:

  public class 类名 implements 接口名{ }

  当我们要去使用一个接口 就必须重写/实现接口类中的所有方法。

  需要注意的是:

  1、由于接口中的访问权限修饰符默认的都是public,所有即使借口中没有写public,在实现的时候也必须机上public。

  2、与类的继承相同,接口也可以成长实现类的父类,实现类对象自动转型为接口类。

创建一个电脑类,并实现接口。

//创建一个电脑类 
public class computer implements storage {
    //定义品牌属性
    public String brand;
    //定义尺寸属性
    public int Size;
    
    //定义储存图片的方法
    public void picture(){
        System.out.println("储存图片");
    }
    //定义储存音乐的方法
    public void Music(){
        System.out.println("储存音乐");
    }
//主方法
    public static void main(String[] args){ 
        //创建一个电脑对象
        computer com=new computer();
        //给电脑品牌赋值
        String brand="联想";
        //给电脑尺寸赋值
        int Size=5;
        //输出  
        System.out.println("硬盘品牌是"+storage.brand+"尺寸是"+storage.Size+","+"电脑品牌是"+brand+"尺寸是"+Size);
        //调用方法
        com.Music();
        com.picture();    
    }
}

然后我们运行一下:

硬盘品牌是三星尺寸是4,电脑品牌是联想尺寸是5
储存音乐
储存图片

当接口与子类中具有相同的属性,使用时:子类赋值后直接写属性名即可,而接口中则需要接口名.属性名。

  

  

posted on 2019-01-02 16:36  张裕泉  阅读(91)  评论(0编辑  收藏  举报