Java接口

定义:

如果一个抽象类没有字段,所有方法全部都是抽象方法,就可以把该抽象类改写为接口:interface:

1
2
3
4
abstract class Person {
public abstract void run();
public abstract String getName();
}

所谓interface,就是比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。因为接口定义的所有方法默认都是public abstract的,所以这两个修饰符不需要写出来(写不写效果都一样)。

1
2
3
4
interface Person {
void run();
String getName();
}

我们知道,在Java中,一个类只能继承(extends)自另一个类,不能从多个类继承。但是,一个类可以实现多个interface
比如:

1
2
3
class Student implements Person, Hello { // 实现了两个interface
...
}

一个interface可以继承自另一个interfaceinterface继承自interface使用extends,它相当于扩展了接口的方法。例如:

1
2
3
4
5
6
7
8
interface Hello {
void hello();
}

interface Person extends Hello {
void run();
String getName();
}

此时,Person接口继承自Hello接口,因此,Person接口现在实际上有3个抽象方法签名,其中一个来自继承的Hello接口

同样是多态中的这段代码:

我们可以看到这个Animal抽象类全部是抽象方法,就可以把它改为接口。

这个向上转型和向下转型只在廖雪峰的接口讲解里面有,不过在笔记的多态中也有提及。

参考:
https://www.liaoxuefeng.com
https://www.runoob.com


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!