美文网首页
Java接口

Java接口

作者: 凹特曼 | 来源:发表于2016-01-12 17:00 被阅读0次

有两个源文件

// 接口默认就是抽象的。当需要声明一个接口的时候不需要使用 abstract 关键字。
// interface 关键字用来声明一个接口

/*
 1.一个接口可以继承另一个接口,和一个类继承自另一个类的方法相同。
 extends 关键字用来继承一个接口,并且子接口要继承父接口的所有方法。
 2.一个接口可以继承多个接口,以逗号隔开
*/
interface Animal extends LivingThing{

    // 接口不能包含实例变量。接口中唯一能出现的变量必须被同时声明为 static 和 final 。
    //int legs 常量必须赋值,没有默认值;
    public static final int legs = 4;
    /*
        接口中的每个方法默认也是抽象的,所以 abstract 关键字也不需要。
        接口中的方法默认是 public 的。
    */
    public void eat();
    void travel();

    // 接口不能包含构造方法。 接口中的所有方法都是抽象的。
    // Animal();
}

interface LivingThing {


    void live();


    // 接口不能包含构造方法。 接口中的所有方法都是抽象的。
    // void Animal();
}

interface Bird {


    void fly();


    // 接口不能包含构造方法。 接口中的所有方法都是抽象的。
    // void Animal();
}
// 接口不能被类继承;它应该被类实现。
public class MammalInt implements Animal,Bird{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public void fly(){
   System.out.println("Mammal can't fly");
   }

    public void live(){
    System.out.println("Mammal is alive");
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      // m.travel();
      m.fly();
      // 接口方法必须实例化 但是不是必须调用
      m.live();

      // 不能实例化一个接口。
       // Animal a = new Animal();

   }

   /*1.当一个类实现一个接口的时候,你可以认为类就是签订一个条约,
   同意去执行接口中的各种行为。
   2.如果一个类没有实现接口中的所有行为,
   这个类就必须声明为 abstract */
   abstract class dog implements Animal{
   /*
   1.类可以一次性实现多个接口。
   2.类只可以继承一个父类,但是可以实现多个接口。
   3.一个接口可以继承自另一个接口,和一个类继承自另一个类的方法相同。
   4.实现接口中的方法 注意类的权限
   */
      public void travel(){

         System.out.println("i like travel");
      }

   }
}

相关文章

网友评论

      本文标题:Java接口

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