接口
抽象类: 包含抽象方法,非抽象.
接口: 理解为是一个纯粹的抽象类
接口中定义抽象方法
作为上层的设计需要,设计功能.
特性:
–接口不可以被实例化
–实现类必须重写接口的所有方法
–实现类可以实现多个接口
–接口中的变量都是静态常量
/* 接口是特殊的抽象类
interface关键字修饰的是接口
一个接口可以继承多个接口
* */
public interface Animal {
//接口修饰的属性是一个常量
// 默认属性为: public static final
int num=10;
//jdk8以后 接口修饰的抽象方法 默认为: public abstract
public void eat();
public void sleep();
//jdk8以后加入静态方法和默认方法
public static void test1(){
System.out.println("静态");
}
//默认方法,子类可以重写也可以不重写,或者通过子类调用
public default void test2(){
System.out.println("默认");
}
}
public interface AnimalB {
void a();
}
//接口可以继承多个接口
public interface AnimalA extends Animal, AnimalB {
void a();
}
public class Dog implements com.ff.javaoop.day5.interFace.Animal {
//实现接口时,要不完全实现接口的方法,要不使用abstract将其变成抽象类
@Override
public void eat() {
System.out.println("狗吃饭");
}
@Override
public void sleep() {
System.out.println("狗睡觉");
}
public void test2(){
System.out.println("默认1");
}
}