1.何为接口?
接口顾名思义是一种特殊的抽象类,它不同于Java中类的继承,它可以实现多种继承,也为解决Java中继承无法实现多继承情况而延展出来的一块知识,接口的声明用interface,用implements 实现接口的继承。
在接口中,所有的方法都是抽象类方法,但不同于抽象类中的方法,在接口中方法不用abstract进行修饰,接口中所有属性前用public static final进行修饰,一般情况下可以省略不写,也就是说在接口中的属性是一个常量,无法进行修改,也无法用实现类的对象进行访问。
一个类要实现接口的话,必须要实现接口的所有方法,在抽象类中必须要有子类,所以,不能在抽象类的前面加final。
package Pack0630;
//创建一个接口
public interface Active {
//建立接口的属性
String color ="黄色";
int age=4;
public void sleep();
public void eat();
}
public class Cat implements Active{
@Override
public void sleep() {
System.out.println("小猫在睡觉");
}
@Override
public void eat() {
System.out.println("小猫在吃饭");
}
public void sing(Active an){
System.out.println("小猫在唱歌,这只猫的颜色为"+color);
}
}
public class Dog implements Active{
@Override
public void sleep() {
System.out.println("小狗在睡觉");
}
@Override
public void eat() {
System.out.println("小狗在吃饭");
}
}
public class Text {
public static void main(String[] args) {
Active an=new Cat();
an.eat();
Cat cat=new Cat();
cat.sing(an);
}
}
2.接口的实现注意事项
在JDK8以后,接口中所有方法都可以进行实现,但必须实现的是接口中抽象方法,其他方法可以不实现,其他方法中包含静态和非静态方法(这两种方法都拥有方法体),当创建静态方法时,必须用public static进行修饰,当为非静态方法时,必须用default进行修饰。