0%

java interface 接口的使用

interface类似于class,只不过interface里的所有方法都是abstract抽象的,当一个非抽象的class实现(implements)一个接口interface时,必须实现接口中所有方法(因为都是abstract抽象的),否则该class必须声明为abstract.

public class Main {

    /**
     * @param args
     * @throws UnsupportedEncodingException 
     */
    public static void main(String[] args) throws UnsupportedEncodingException {
        // TODO Auto-generated method stub
        new Athlete().jump();
        new Athlete().run();
    }

}
interface Sport{
    void run();//默认public abstract
    void jump();
}
class Athlete implements Sport{//实现接口

    @Override
    public void jump() {
        // TODO Auto-generated method stub
        System.out.println("jump");
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("run");
        
    }
}

不同类通过接口实现通讯:

public class Main {

    public static void main(String[] args) throws UnsupportedEncodingException {
        Zhang z=new Zhang();
        Info info=new Info();
        info.setPeople(z);
        System.out.println(info.getName()+" is "+info.getDoing());

    }

}
interface People{//定义接口
    String name();
    String doing();//默认public abstract

}
class Zhang implements People{//实现接口

    @Override
    public String name() {
        // TODO Auto-generated method stub
        return "zhangshang";
    }

    @Override
    public String doing() {
        // TODO Auto-generated method stub
        return "sleeping";
        
    }	
}
class Info {
    People p;
    void setPeople(People p){
        this.p=p;
    }
    String getName(){
        return p.name();	
    }
    String getDoing(){
        return p.doing();
    }
}

1、一个接口可以继承(extends)自另一个接口 2、不允许类的多继承,但允许接口的多继承(同时继承多个接口) 2、类可以实现多个接口 3、类在继承另一个类的同时,可以实现多个接口,先extends后implements