美文网首页
接口与实现

接口与实现

作者: 敬子v | 来源:发表于2019-05-16 17:39 被阅读0次

    接口是比“abstract类”更抽象的类,在java中,类是单继承的,而接口可以实现多继承

    接口包含接口声明和接口体

    接口体包含常量和抽象方法 常量用public final 修饰(可以省略),抽象方法用public abstract修饰(可以省略)

    一个类可以实现多个接口,中间用逗号隔开,如果一个非抽象类实现了某个接口,那么这个类必须要重写该接口的全部方法,并且由于接口中的方法一定是public abstract 方法,所以非抽象类的方法在重写接口方法的时候不仅要去掉abstract修饰给出方法体,而且方法的访问权限一定要明显地用public来修饰。

    类重写的接口方法以及接口中的常量可以被类的对象调用,而且常量也可以用接口名直接调用。类也可以被继承。

    接口回调:

    //类创建的对象的引用直接赋值给接口变量

    public class TestInterface2 {

    public static void main(String args[]) {

    ShowMessage sm;

    sm =new TV();

    sm.showMessage("长虹牌电视机");

    sm=new PC();

    sm.showMessage("联想奔月");

    }

    }

    interface ShowMessage{

    void showMessage(String string);

    }

    class TV implements ShowMessage{

    public void showMessage(String string) {

    System.out.println(string);

    }

    }

    class PC implements ShowMessage{

    public void showMessage(String string) {

    System.out.println(string);

    }

    }

    接口和多态:

    //该接口的类的实例的引用传递给该接口参数

    interface SpeakHello{

    void speakHello();

    }

    class Chinese implements SpeakHello{

    public void speakHello(){

    System.out.println("中国人的问候:你吃饭了吗?");

    }

    }

    class English implements SpeakHello{

    public void speakHello(){

    System.out.println("英国人的问候:今天天气怎么样?");

    }

    }

    class KindHello{

    public void lookHello(SpeakHello hello){

    hello.speakHello();

    }

    }

    public class TestInterface_1 {

    public static void main(String args[]){

    KindHello kindhello=new KindHello();

    kindhello.lookHello(new Chinese());

    kindhello.lookHello(new English());

    }

    }

    abstract类与接口的比较:

    1.abstract类和接口都可以有abstract方法

    2.接口中只可以有常量,不可以有变量;而abstract类中可以有常量也可以有变量

    3.abstract类中可以有非abstract方法,也可以有abstract方法。

    相关文章

      网友评论

          本文标题:接口与实现

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