接口中的方法和變量


1.接口的定義格式:

          Interface 接口名稱{}

2.接口中的變量一定是常量:

          public static final 變量名=變量值;       

3.接口中的方法沒有方法體,且方法的修飾符public abstract可以省略:

          [public abstract] 返回值類型 方法名稱(參數列表);

4.當接口中需要增加方法,而不想影響到其他實現該接口的類時,可以使用默認方法,默認方法也可以被重寫:

          public default 返回值類型 方法名(參數列表){ ...}

5.私有方法只能在接口內部被訪問,具有安全性,同時可以減少代碼冗余:

          private 返回值類型 方法名(參數列表){ ...}

注意:接口中的方法不一定都是抽象方法,在JDK8,JDK9中,接口可以有默認方法,私有方法。

代碼演示:

interface Animal {
    //常量年齡為2歲
    public static final int age=2;
    //抽象方法eat()
    public abstract void eat();
    //默認方法run()
    public default void run(){
        System.out.println("動物在跑");
    }
    //靜態方法sleep()
    public static void sleep(){
        System.out.println("動物在睡覺");
    }
    //私有方法play()
    private static void play(){
        System.out.println("開始游戲");
        System.out.println("暫停游戲");
        System.out.println("繼續游戲");
        System.out.println("結束游戲");
    }
    //默認方法happy()
    public default void happy(){
        //調用了私有方法play(),可以減少代碼冗余,同時不讓接口以外訪問到,具有安全性
        play();
        System.out.println("玩得很開心");
    }
}
public class Cat implements Animal{
    //重寫eat()抽象方法
    @Override
    public void eat() {
        System.out.println("貓在吃");
    }
    //重寫默認方法run()
    @Override
    public void run() {
        System.out.println("貓在跑");
    }
}
public class Demo6{
    public static void main(String[] args) {
        Cat cat=new Cat();
        System.out.println("貓的年齡是"+cat.age);
        cat.eat();
        cat.run();
        cat.happy();
        Animal.sleep();
    }
}

運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM