一、为什么要有接口,接口有什么用
- 一个类只能继承一个父类,但是可以继承N个接口,所以就可以拥有各个接口的方法
- 两者的特性
二、接口的相关使用方法
1、接口的定义 ------ interface关键字用来声明一个接口
interface 接口名称{
// 全局常量,public static final,但书写时可以省略不写
// 抽象方法,ublic abstract 的
}
如下:
interface Mood{
int Lowest_value = 0; // 全局常量, 定义心情的最低值
int Most_value = 100; //全局常量, 定义心情的最高值
void cheerful();// 抽象方法, 省略了抽象方法前面的public abstract
void cry(); //抽象方法
}
2、接口的实现 ------ 类使用implements关键字实现接口
class 类名 implements 接口1, 接口2 ... {
// 重写所引用接口中所有使用的方法
}
如下:
// 接口1:接口的定义,interface使用
interface Animal{
// 定义接口中的抽象方法
void eat(); // 省略了抽象方法前面的public abstract
void drink();
void play();
void pleasure();
}
// 接口2:表达情绪的接口,定义接口中的抽象方法,interface使用
interface Mood{
int Lowest_value = 0; // 全局常量, 定义心情的最低值
int Most_value = 100; //全局常量, 定义心情的最高值
void cheerful();// 抽象方法, 省略了抽象方法前面的public abstract
void cry(); //抽象方法
}
// 类来实现接口,重写所引用接口中所有使用的方法
class Dog implements Animal,Mood{
public int name;
public int age;
public void show(){
System.out.println("狗出去玩啦");
}
@Override
public void eat() {
}
@Override
public void drink() {
}
@Override
public void play() {
System.out.println("所有的动物都可以去玩了");
}
@Override
public void pleasure() {
}
@Override
public void cheerful() {
}
@Override
public void cry() {
}
}
3、整体代码如下:
public class InterfaceTest2 {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.play();
}
}
// 接口的定义,interface使用
interface Animal{
// 定义接口中的抽象方法
void eat(); // 省略了抽象方法前面的public abstract
void drink();
void play();
void pleasure();
}
// 表达情绪的接口,定义接口中的抽象方法,interface使用
interface Mood{
int Lowest_value = 0; // 全局常量, 定义心情的最低值
int Most_value = 100; //全局常量, 定义心情的最高值
void cheerful();// 抽象方法, 省略了抽象方法前面的public abstract
void cry(); //抽象方法
}
// 定义类
class Cat{
public int name;
public int age;
public void walk(){
System.out.println("猫很开心,它自己出去散步啦");
}
}
class Dog implements Animal,Mood{
public int name;
public int age;
public void show(){
System.out.println("狗出去玩啦");
}
@Override
public void eat() {
}
@Override
public void drink() {
}
@Override
public void play() {
System.out.println("所有的动物都可以去玩了");
}
@Override
public void pleasure() {
}
@Override
public void cheerful() {
}
@Override
public void cry() {
}
}
三、接口的继承及多继承 ------ extends
1、一个接口能继承另一个接口,和类之间的继承方式比较相似。接口的继承使用extends关键字,子接口继承父接口的方法。
下面的Biology接口被Animal接口继承:
// 定义总的特征,生物Biology
interface Biology{
String name = "名字";
void life();
}
// 接口的定义,interface使用,extends Biology,,,子接口Animal继承父接口Biology的方法。
interface Animal extends Biology{
// 定义接口中的抽象方法
void eat(); // 省略了抽象方法前面的public abstract
void drink();
void play();
void pleasure();
}
2、当然也有多继承
如:interface Basketball extends Sports, Event
参考:https://www.runoob.com/java/java-interfaces.html.