Java 接口(interface)

  • 接口用关键字interface表示
    • 格式:interface 接口名 {}
  • 类实现接口用implements表示
    • 格式:class 类名 implements 接口名 {}
  • 接口不能实例化
    • 那么,接口如何实例化呢?
    • 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态(下一节讲)。
  • 接口的子类
    • 可以是抽象类。但是意义不大。
    • 可以是具体类。要重写接口中的所有抽象方法。(推荐方案)
/** * 
public class Interface_Java {    
   public static void main(String[] args) {        
         //AnimalTrain是抽象的; 无法实例化        
        //AnimalTrain at = new AnimalTrain();        
        //at.jump();        
        AnimalTrain at = new Cat();       
       at.jump(); 
  }
}
//定义动物培训接口
interface AnimalTrain {    
     public abstract void jump();
}
//抽象类实现接口
abstract class Dog implements AnimalTrain {
}
//具体类实现接口
class Cat implements AnimalTrain {    
     public void jump() {       
           System.out.println("猫可以跳高了");    
    }
}

  • 接口成员特点
    • 成员变量;只能是常量,并且是静态的。
    • 默认修饰符:public static final
    • 建议:自己手动给出。
  • 构造方法:接口没有构造方法。因为接口主要是扩展功能的,而没有具体存在
  • 成员方法:只能是抽象方法。
    • 默认修饰符:public abstract
    • 建议:自己手动给出。
interface Inter {  
     public int num = 10; 
     public final int num2 = 20; 
     public static final int num3 = 30; 
     //错误: 需要<标识符>,接口没有构造方法
     //public Inter() {} 
     //接口方法不能带有主体 //public void show() {} 
     //abstract void show();
     //默认public public void show(); 
    //默认abstract}
class InterImpl extends Object implements Inter { 
        public InterImpl() { super(); } 
       @Override 
       public void show() { }
}
public class InterfaceDemo { 
      public static void main(String[] args) {
         //创建对象
         Inter i = new InterImpl(); 
         System.out.println(i.num); 
         System.out.println(i.num2); 
         //i.num = 100;
         //i.num2 = 200; 
         //System.out.println(i.num); //无法为最终变量num分配值      
         //System.out.println(i.num2);//无法为最终变量num2分配值     
         System.out.println(Inter.num);
         System.out.println(Inter.num2); 
     }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 989评论 0 1
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,672评论 1 114
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,142评论 0 62