// 含有抽象方法
// public abstract void method();
// 含有默认方法和静态方法
public default void method1(){}
public static void method2(){}
// 含有私有方法
private void method(){}
类与接口的关系为实现关系,即类实现接口,
非抽象子类实现接口:
class 类名 implements 接口名{
// 重写接口中抽象方法 必须
// 重写接口中的默认方法 可选
}
public interface InterFaceName {
public abstract void eat();
public abstract void sleep();
}
// 定义实现类
public class Animal implements InterFaceName {
@Override
public void eat(){
System.out.println("吃东西");
}
@Override
public void sleep(){
System.out.println("晚上睡");
}
}
// 定义测试类
public class InterfaceDemo {
public static void main(String[] args) {
Animal a =new Animal();
a.eat();
a.sleep();
}
}
静态方法与.class文件相关,只能使用接口名调用,不可以通过实现类的类名或者实现类的对象调用,
一个类只能继承一个父类,而对于接口而言,一个类可以实现多个接口的,这叫做接口的多实现,并且一个类能继承一个父类,同时实现多个接口。
class 类名 [extends 父类名] implements 接口1,接口2,。。。{
// 重写接口中的抽象方法 必须
// 重写接口中默认方法 不重名的时候可选
}
接口中,有多个抽象方法时,实现类必须重写所有抽象方法,如果抽象方法有重名,只需要重写一次。
但是当默认方法有重名时,必须重写一次。
当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。
原文:https://www.cnblogs.com/yuanjian-work/p/13757313.html