拿动物举一个JAVA多重接口的例子
时间: 2023-06-25 22:04:29 浏览: 46
假设我们有三个接口:Animal、Swimable和Walkable,分别代表动物、能游泳和能走路这三种特性。我们可以定义一个类Dog,实现这三个接口:
```
interface Animal {
void eat();
}
interface Swimable {
void swim();
}
interface Walkable {
void walk();
}
class Dog implements Animal, Swimable, Walkable {
public void eat() {
System.out.println("Dog is eating.");
}
public void swim() {
System.out.println("Dog is swimming.");
}
public void walk() {
System.out.println("Dog is walking.");
}
}
```
这个例子中,Dog类实现了Animal、Swimable和Walkable三个接口,因此它具有动物、能游泳和能走路这三种特性。我们可以创建一个Dog对象,并调用它的eat()、swim()和walk()方法来验证它的行为。
相关问题
用动物举一个JAVA接口回调的例子
假设有一个动物园类 Zoo,里面有一个方法 feedAnimals(),该方法需要接收一个接口 AnimalFoodProvider。AnimalFoodProvider 接口中有一个方法 provideFood(),用于提供食物。
那么,我们可以定义一个动物类 Animal,该类实现 AnimalFoodProvider 接口,并实现 provideFood() 方法,用于提供食物。当 feedAnimals() 方法被调用时,Zoo 类会调用 Animal 类的 provideFood() 方法,从而为动物提供食物。
以下是代码示例:
```java
interface AnimalFoodProvider {
void provideFood();
}
class Animal implements AnimalFoodProvider {
String name;
public Animal(String name) {
this.name = name;
}
@Override
public void provideFood() {
System.out.println(name + " is eating.");
}
}
class Zoo {
public void feedAnimals(AnimalFoodProvider provider) {
provider.provideFood();
}
}
public class Main {
public static void main(String[] args) {
Zoo zoo = new Zoo();
Animal tiger = new Animal("Tiger");
Animal deer = new Animal("Deer");
zoo.feedAnimals(tiger);
zoo.feedAnimals(deer);
}
}
```
在上面的例子中,Animal 类实现了 AnimalFoodProvider 接口,并提供了 provideFood() 方法。Zoo 类中的 feedAnimals() 方法接收一个 AnimalFoodProvider 接口类型的参数,当该方法被调用时,Animal 类的 provideFood() 方法会被调用,从而为动物提供食物。在 main 方法中,我们创建了两个 Animal 对象,并将它们传递给 feedAnimals() 方法,从而为它们提供食物。
请举一个java接口的例子
一个简单的Java接口的例子如下:
```java
public interface Shape {
public double getArea();
public double getPerimeter();
}
```
这个接口定义了一个形状的抽象数据类型,其中有两个方法 `getArea()` 和 `getPerimeter()`,分别用于获取形状的面积和周长。具体实现这个接口的类需要实现这两个方法。例如,一个实现了这个接口的圆形类可以这样写:
```java
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
```
这个类实现了 `Shape` 接口,并且提供了 `getArea()` 和 `getPerimeter()` 方法的具体实现。