接口、多态
接口 、多态
接口
概述
- 接口就是java语言中一种引用类型,接口的内部主要就是封装了方法,包含抽象方法,默认方法和静态方法、私有方法。
- 接口的定义与定义类的方式相似,使用interface关键字,
- 接口的使用它不能创建对象,但是可以被实现(implements,类似于被继承)。一个实现接口的类,需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。
// 含有抽象方法
// 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,。。。{
// 重写接口中的抽象方法 必须
// 重写接口中默认方法 不重名的时候可选
}
接口中,有多个抽象方法时,实现类必须重写所有抽象方法,如果抽象方法有重名,只需要重写一次。
但是当默认方法有重名时,必须重写一次。
优先级问题
当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。

浙公网安备 33010602011771号