1.概念
(1)接口(interface)
首先接口是一个抽象的数据类型,在接口中,我们会定义一个或多个方法,但是我们却没有去实现它,只是给出了方法的返回类型、名称和传参结构,所以就比较抽象。所以我们要在哪里去实现这个方法呢?一般的接口中的方法默认是公共的,所以我们会在实现了该接口的类里面去实现这个方法。
一个类可以实现多个接口,我们通过关键字 implements 来实现接口,一个接口又可以被多个类实现,但是要注意的是,一个类只能实现一个类。通过这个我们可以知道接口具有多态性,在实现这个接口的所有类中,会根据它们自身的需求去实现接口中的方法,但是必须遵循接口定义的方法。
(2)多态性(Polymorphism)
多态性表示同一个方法的调用有不同的行为,这通常在父子类继承和接口中会用到。
2.代码示例
我们先创建一个动物接口(Animal),其中有两个方法,分别是 eat() 、introduce(),eat() 输出动物喜欢吃什么,introduce() 输出动物的基本信息。
interface Animal {
void eat();
void introduce();
}
然后我们分了三个类,分别是小猫(Cat)、小狗(Dog)、猴子(Monkey)
小猫类:
class Cat implements Animal {
public void eat() {
System.out.println("I like eating fish");
}
public void introduce() {
System.out.println("I'm a Cat, My name is LiLi ,My old is 3, My eyes are blue" );
}
}
小狗类:
class Dog implements Animal {
public void eat() {
System.out.println("I like eating beat");
}
public void introduce() {
System.out.println("I'm a Dog, My name is WuWu ,My old is 1, My hair are yellow" );
}
}
猴子类:
class Monkey implements Animal {
public void eat() {
System.out.println("I like eating banana");
}
public void introduce() {
System.out.println("I'm a Monkey, My name is Tom ,My old is 5, My tail are red" );
}
}
我们可以清晰地看到每一个类中,实现接口的方法都不同,都是根据自己的需求去实现的。
3.代码综合
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入你想要了解的动物信息 (1 表示小猫, 2 表示小狗, 3 表示猴子):");
int operate = s.nextInt();
if( operate == 1 ) {
Animal cat = new Cat();
cat.eat();
cat.introduce();
}
else if( operate == 2 ) {
Animal dog = new Dog();
dog.eat();
dog.introduce();
}
else if( operate == 3 ) {
Animal monkey = new Monkey();
monkey.eat();
monkey.introduce();
}
}
}
interface Animal {
void eat();
void introduce();
}
class Cat implements Animal {
public void eat() {
System.out.println("I like eating fish");
}
public void introduce() {
System.out.println("I'm a Cat, My name is LiLi ,My old is 3, My eyes are blue" );
}
}
class Dog implements Animal {
public void eat() {
System.out.println("I like eating beat");
}
public void introduce() {
System.out.println("I'm a Dog, My name is WuWu ,My old is 1, My hair are yellow" );
}
}
class Monkey implements Animal {
public void eat() {
System.out.println("I like eating banana");
}
public void introduce() {
System.out.println("I'm a Monkey, My name is Tom ,My old is 5, My tail are red" );
}
}