目录
五、从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
七、接口中声明的属性默认为public static final的,也只能是public static final
八、接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的
一、多个无关的类可以实现同一个接口
public interface Run{
public void start();
}
class Person implements Run {
public void start() {
}
}
class Animal implements Run {
public void start() {
}
}
二、一个类可以实现多个无关的接口
public interface Run{
public void start();
}
public interface Drink{
public void He();
}
class Person implements Run,Drink {
public void start() {
}
public void He() {
}
}
三、与继承关系类似,接口与实现类之间存在多态性
实现类重写了接口中的方法,通过接口中的方法,可以根据传进去的对象不同,调用不同重写接口的方法(相当于里氏转换后的重写)
例子:就像加法,不管你是int类型还是double类型,只要你符合我这个接口的逻辑,实现了我这个接口,那我就按照我的逻辑给你运算出结果
public class Test{
public static void main(String args[]){
Run r=new Person();
State(r);
Run a=new Animal ();
State(a);
}
public void State(Run r) {
r.Start();
}
}
class Person implements Run {
public void start() {
System.out.println("人正在跑");
}
}
class Animal implements Run {
public void start() {
System.out.println("动物正在跑");
}
}
public interface Run{
public void start();
}
输出结果:人正在跑动物正在跑
四、接口是抽象方法和常量值的定义的集合
五、从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
六、接口可以多重实现
七、接口中声明的属性默认为public static final的,也只能是public static final
八、接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的
九、接口可以继承其他的接口,并添加新的属性和抽象方法
public interfaca Runner{
public static final int id=1;
public void start();
public void run();
}
总结:接口相当于一个标准,你要实现接口,就要实现接口中的标准要求,就像你要生产一个U盘,那么你就要符合电脑上USB接口上的标准,生产出来才可以正常的使用