接口



Main類:
public class Main {
    public static void main(String[] args) {

        Animal animalDog = new Dog();
        Animal animalCat = new Cat();

        animalDog.eat();
        animalCat.eat();

        if (animalCat instanceof Cat) {
            Cat cat = (Cat) animalCat;
        }
        //使用匿名內部類
        OutPut out = new OutPut(){
            @Override
            public void showA() {
                System.out.println("OutPut->showA()");
            }

            @Override
            public void showB() {
                System.out.println("OutPut->showB()");
            }

            @Override
            public void showDown() {
                System.out.println("OutPut->showDown()");
            }
        };
out.showC();
        out.showA();
        out.showB();

    }
}

/*
接口的特點:
1.關鍵字為interface(是什么)
2 修飾符只能是public(前綴)
3.接口可以同時繼承多個父接口(后綴)
4.接口中的屬性只能是常量(不允許有變量)  (里面的常量)
5.接口中的方法默認的修飾符是Public           ()
6.接口中定義非抽象方法(默認)使用default進行修飾

*/

interface interfaceA{
    void showA();

}
interface interfaceB{
    void showB();

}


public interface OutPut extends  interfaceA,interfaceB{
    int AGE =10;//常量
    public  default  void showC(){System.out.println("OutPut->showC()");}

    void showDown();


}

animal類:
public abstract class Animal {
    int nAge;
    String strName;
    //普通方法
    public  void eat(){System.out.println("Animal->eat()");}
    //內部類
    class Inner{

    }
    //抽象方法,只能默認和public修飾
    abstract  void Sleep();

}

cat類:
public class Cat extends Animal implements interfaceA,interfaceB {
    @Override//override重寫
    void Sleep() {

    }

    @Override
    public void eat() {
        System.out.println("Cat->eat()");
    }

    @Override
    public void showA() {

    }

    @Override
    public void showB() {

    }
}

Dog類:

public class Dog extends Animal implements  OutPut {
    @Override
    public void eat() {
        System.out.println("Dog->eat");
    }

    @Override
    void Sleep() {

    }

    @Override
    public void showA() {

    }

    @Override
    public void showB() {

    }

    @Override
    public void showDown() {

    }
}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容