Java接口概念和语法例子(功能性方法)

简介: 比如有三个类。兔子、狗、青蛙这三个类。要定义一个公共游泳方法出来。但是兔子不会这个游泳,那么就不使用这个接口,另外的狗和青蛙会游泳,就会使用这个游泳接口。简单来说,就是谁需要功能接口谁就使用这个功能接口就好了

一、概念

接口:Interface

1.比如有三个类。兔子、狗、青蛙这三个类。要定义一个公共游泳方法出来。但是兔子不会这个游泳,那么就不使用这个接口,另外的狗和青蛙会游泳,就会使用这个游泳接口。简单来说,就是谁需要功能接口谁就使用这个功能接口就好了

2.接口存在的意义就是为了解耦,多继承

3.接口不能实例化

4.接口和抽象类的区别:抽象类更多的是定义在父类中,接口是单独定义一个出来的

二、使用语法

1.public interface 接口名 {}

2.通过在类名处使用implements调用

三、代码例子

父类动物类,子类兔子不会游泳所以不使用游泳接口,青蛙子类会游泳就使用游泳接口

父类--动物类

package bao;
//父类--动物类
public abstract class Animal {
    //1.定义父类成员变量
    private String name;
    private double age;
    //2.快捷键生成set和get方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getAge() {
        return age;
    }
    public void setAge(double age) {
        this.age = age;
    }
    //3.快捷键生成构造方法
    public Animal(String name, double age) {
        this.name = name;
        this.age = age;
    }
    //定义一个父类的eat抽象方法
    //为什么要定义成抽象方法呢,因为要强制子类必须重写使用本方法
    public abstract void eat();
}

接口--游泳

package bao;
//接口--游泳
public interface Swim {
    //定义一个抽象方法
    public abstract void swim();
}

子类--青蛙

package bao;
//子类--青蛙
public class Frog extends Animal implements Swim{
    //1.生成构造方法
    public Frog(String name, double age) {
        super(name, age);
    }
    //2.重写父类方法,快捷键:光标放在类名处,alt+回车键,选择第一个回车
    @Override
    public void eat() {
        System.out.println("青蛙在吃东西");
    }
    @Override
    public void swim() {
        System.out.println("青蛙在游泳");
    }
}

子类--兔子

package bao;
//子类--兔子
public class Rabbit extends Animal{
        //1.生成构造方法
    public Rabbit(String name, double age) {
        super(name, age);
    }
        //2.重写父类方法
    @Override
    public void eat() {
        System.out.println("兔子在吃东西");
    }
}

测试类

package bao;
//测试类
public class Test {
    public static void main(String[] args) {
        //实例化青蛙类
        Frog f = new Frog("青蛙",1);
        f.eat();
        f.swim();
        //实例化兔子类
        Rabbit r = new Rabbit("兔子",2);
        r.eat();
    }
}

运行结果

青蛙在吃东西

青蛙在游泳

兔子在吃东西

旁白:接口就是一个独立的功能,创建出来谁想用就使用就好了,里面定义的是抽象方法,不能被实例化。

目录
相关文章
|
12天前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
97 60
|
23小时前
|
Java
java线程接口
Thread的构造方法创建对象的时候传入了Runnable接口的对象 ,Runnable接口对象重写run方法相当于指定线程任务,创建线程的时候绑定了该线程对象要干的任务。 Runnable的对象称之为:线程任务对象 不是线程对象 必须要交给Thread线程对象。 通过Thread的构造方法, 就可以把任务对象Runnable,绑定到Thread对象中, 将来执行start方法,就会自动执行Runable实现类对象中的run里面的内容。
7 1
|
4天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
30 4
|
6天前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
31 4
|
12天前
|
安全 Java
在 Java 中使用实现 Runnable 接口的方式创建线程
【10月更文挑战第22天】通过以上内容的介绍,相信你已经对在 Java 中如何使用实现 Runnable 接口的方式创建线程有了更深入的了解。在实际应用中,需要根据具体的需求和场景,合理选择线程创建方式,并注意线程安全、同步、通信等相关问题,以确保程序的正确性和稳定性。
|
8天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
13 2
|
10天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
24 1
|
11天前
|
Java
Java基础(13)抽象类、接口
本文介绍了Java面向对象编程中的抽象类和接口两个核心概念。抽象类不能被实例化,通常用于定义子类的通用方法和属性;接口则是完全抽象的类,允许声明一组方法但不实现它们。文章通过代码示例详细解析了抽象类和接口的定义及实现,并讨论了它们的区别和使用场景。
|
11天前
|
Java 测试技术 API
Java零基础-接口详解
【10月更文挑战第19天】Java零基础教学篇,手把手实践教学!
16 1
|
10天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
下一篇
无影云桌面