首页 > 代码库 > java之接口interface

java之接口interface

接口

1、多个无关的类可以实现同一个接口

2、一个类可以实现多个无关的接口

3、与继承关系类似,接口与实现类之间存在多态性

4、定义java类的语法格式

< modifier> class < name>[extends< superclass>][implements< interface>[, interface]*]{

  <declarations>*

}

  

附:

1、接口(interface)是抽象方法和常亮值的定义的结合。

2、从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常亮和方法的定义,而没有变量和方法的实现。

3、接口定义举例:

public interface Runner{    public static final int id = 1;    public void strrt();    public void run();    public void stop();}

 

 

接口特性:

1、接口可以实现多重继承

2、接口声明的属性默认为public static final 的;也只能是public static final 的;

3、接口中只能定义抽象方法,而且这些方法默认为public 的、也只能是public的;

4、接口可以继承其他接口,并添加新的属性和抽象方法;

 

接口的使用以及接口实现多态:

public class TestInterface{    public static void main(String args[]){        Singer student = new Student("studentName");        student.sing();        student.sleep();                Teacher teacher = new Teacher("TeacherName");        teacher.painter();        teacher.eat();                Painter painter = (Painter)teacher;        painter.painter();        painter.eat();        //下面是实现多态的部分        TestInterface t1 = new TestInterface();        t1.f(student);        t1.f(teacher);    }    public void f(Singer s){        s.sing();    }}interface Singer{    public void sing();    public void sleep();}interface Painter{    public void painter();    public void eat();}class Student implements Singer{    private String name;    public Student(String name){        this.name = name;    }    public String getName(){        return name;    }    public void Study(){        System.out.println("studying...");    }    public void sing(){        System.out.println("study is singing");    }    public void sleep(){        System.out.println("study is sleeping");    }}class Teacher implements Singer,Painter{    private String name;    public Teacher(String name){        this.name = name;    }    public String getName(){        return name;    }    public void sing(){        System.out.println("teacher is singing");    }    public void sleep(){        System.out.println("teacher is sleeping");    }    public void painter(){        System.out.println("teacher is paintering");    }    public void eat(){        System.out.println("teacher is eating");    }}

运行结果:

 

内存分析图:

java之接口interface