class Learn03{
    public static void main(String[] aa){
        A b = new B(); //接口也可以用多态
        b.method1();
        b.method2();
        ((A1)b).eat();
        ((A1)b).play();
        
        //匿名内部类的使用--现场调用--一般只使用一次才用
        new Apple (){
            public void getPrice(){
                System.out.println("显示价格" + price);
            }
        }.getPrice();
        
    }
}

//interface可以理解为完全抽象的类,里面的方法全部都是抽象的,所以接口没有构造方法


interface A{
    void method1();
    void method2();
}

//接口之间也可以继承
interface A1{
    void eat();
    void play();
    
}

//接口中的变量都是final类型
interface Apple {
    final float price =12f;
    final float weight=13f;
    void getPrice();
    
}

//注意extends只能继承普通类和抽象类,不能继承接口
//接口可以被实现
//一个类可以同时实现多个接口,用逗号隔开
class B implements A,A1{
    public void method1(){
        System.out.println("这里是方法1");
    }    
    public void method2(){
        System.out.println("这里是方法2");
    }    
    public void eat(){
        System.out.println("eat");
    }    
    public void play(){
        System.out.println("play");
    }
}