Interface——接口
构成:interface + 接口的名字{
接口的实现部分:
1.(默认是public final static)成员变量;
2.(默认是public abstract)成员方法(写的是方法的声明);
}
-
一般接口中不写成员变量,只写方法---相当于只写了规则,通过将接口也称为方法列表
-
接口起作用的方式:让类去实现接口
- 类与类之间的关系---继承 extends
- 类与接口直接的关系---实现 implements
public class Demo17 {
public static void main(String[] args) {
Bird bird = new Bird();
bird.show();
bird.play();
}
}
//接口本身就是抽象的
interface Inter1{
//int age =1;//接口当中的变量默认是final(最终的,公共的,静态的)的,所以定义的时候必须先给一个值
public void show();
}
interface Inter2{
//int age =1;//接口当中的变量默认是final(最终的,公共的,静态的)的,所以定义的时候必须先给一个值
public void play();
}
//接口之间有继承的关系,多个接口用逗号隔开
interface Inter3 extends Inter1,Inter2{
}
//创建bird类实现Inter1接口和Inter2接口,多个接口之间有逗号隔开
class Bird implements Inter1,Inter2{
//重写show()方法
public void show() {
System.out.println("bing ");
}
public void play() {
System.out.println("play");
}
}
- 问题一:接口与父类可以同时存在吗?可以
- 问题二:一个子类只能由一个父类,也只能由一个接口?不对,可以同时存在多个接口
- 问题三:父类与接口的功能 如何分配?重要的功能放在父类中,接口中放的是额外的功能,接口作为父类的补充
- 问题四:接口能直接创建对象吗?不可以,接口默认是抽象的
- 问题五:接口与接口之间可以由关系吗?如果有,有什么关系?可以,有继承的关系,并且是多继承
- 问题六:当一个类实现的接口中出现了相同的方法,子类中实现的方法会不会混淆?不会,因为接口中的方法都是抽象的要通过子类写具体的实现,我们在调用方法时,最终看的是功能,而功能只有一份