美文网首页
Java中的接口

Java中的接口

作者: by小杰 | 来源:发表于2017-02-08 18:04 被阅读41次
    • 1、接口慨念
      类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它指明了这些类里必须提供某些方法。
    • 2、接口定义基本语法:
    [修饰符]interface 接口名 [extends 父接口1,父接口2,...]
    {
        常量定义...
        抽象方法...
    }
    
    • 3、接口定义
      常量:接口定义中属性是常量,即使定义时不添加public static final 修饰符,系统也会自动加上。
      方法:接口中的方法都是抽象方法,即使定义时不添加public abstract修饰符,系统也会自动加上。

    • 4、 使用接口
      一个类可以实现一个或多个接口,实现接口使用implements关键字。Java中一个类只能继承一个父类,是不够灵活的,通过实现多个接口可以做补充。

    继承父类实现接口的语法为:
    [修饰符] class 类名 extends 父类 implements 接口1, 接口2...
    {
        类的具体内容
        //1、如果继承了抽象类,需要实现抽象方法;
        //2、要实现接口中的抽象方法。
    }
    注释:如果要继承父类,继承父类必须在实现接口之前(也就是说:extends和implements关键字不可以调换顺序)
    

    IPlayGame.java(接口文件)

    package com.imooc;
    
    public interface IPlayGame {
    
        public void playGame(); //只定义方法,而不需要实现
        
    }
    

    Psp.java(接口实现文件)
    创建一个类Psp.java,实现上面的接口:

    package com.imooc;
    
    public class Psp implements IPlayGame {
       
        //选择实现接口文件,回自动实现接口文件的方法
        @Override
        public void playGame() {
        
            System.out.println("Psp具有了玩游戏的功能");
        }
    
    }
    

    SmartPhone.java(接口实现文件)

    package com.imooc;
    
    public class SmartPhone extends Telephone implements IPlayGame{
    
        //继承的Telephone 类为抽象类,所以自动实现抽象类方法
        @Override
        public void call() {
            // TODO Auto-generated method stub
    
            System.out.println("通过语音打电话");
        }
    
        @Override
        public void message() {
            // TODO Auto-generated method stub
    
            System.out.println("通过语音来发短信");
        }
    
        //实现IPlayGame接口,自动实现接口中的方法
        @Override
        public void playGame() {
            // TODO Auto-generated method stub
            System.out.println("SmartPhone具有了玩游戏的功能");
        }
    
    }
    

    Initail.java(应用文件)

    IPlayGame pl1 = new SmartPhone();
    pl1.playGame();
            
    IPlayGame pl2 = new Psp();
    pl2.playGame();
    
    • 5.通过匿名内部类使用接口
      接口在使用过程当中,还经常与匿名内部类配合使用
      匿名内部类就是没有名字的内部类,多用来关注实现而不关注实现类的名称。
    //方式一:
    IPlayGame pl3 = new IPlayGame(){
    
                @Override
                public void playGame() {
                    // TODO Auto-generated method stub
                    
                    System.out.println("使用匿名类的方式实现接口");
                }
    
    };
    pl3.playGame();
            
    //方式二:      
    new IPlayGame(){
    
                @Override
                public void playGame() {
                    // TODO Auto-generated method stub
                    System.out.println("使用匿名类的方式实现接口");
                }
                
                
    }.playGame();
    

    相关文章

      网友评论

          本文标题:Java中的接口

          本文链接:https://www.haomeiwen.com/subject/phqbittx.html