Java的接口和多态性代码示例

本文介绍了Java中的接口和多态性概念,通过Animal接口和小猫、小狗、猴子类的实例展示了如何使用接口和实现多态。用户可以通过命令行选择不同的动物类型,展示各自特有的行为。
摘要由CSDN通过智能技术生成

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" );
    }
}

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值