美文网首页
Java 接口(interface)

Java 接口(interface)

作者: 清风沐沐 | 来源:发表于2016-10-25 17:31 被阅读38次
    • 接口用关键字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); 
         }
    }
    

    相关文章

      网友评论

          本文标题:Java 接口(interface)

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