Java面向对象 接口(interface)的详解

简介: Java面向对象 接口(interface)的详解

接口的使用

  1. 接口使用interface来定义。
  2. Java中接口和类是两个并列的结构。
  3. 如何定义接口:接口中的成员

3.1.JDK7及以前只能定义全局常量和抽象方法

全局常量:public static final的 但是书写时,可以省略不写

抽象方法:public abstract的

package demo11;
public class InterfaceTest  {
}
interface FilType{
    //全局常量
    public static final int age=3;
    int age1=4;
    //抽象方法
    public abstract void method();
}

3.2.JDK8除了可以定义全局常量和抽象方法以外,还可以定义静态方法,默认方法

public interface Car {
    //接口中定义静态方法
    public static void method1(){
        System.out.println("奥迪");
    }
    //定义默认方法
    public default void method2(){
        System.out.println("宝马");
    }
}
  • 接口中定义的方法只能通过,“接口.方法” 的方式去调用
  • 通过实现类的对象,可以调用接口中的默认方法,如果实现类重写了接口中的方法,则调用时,依然是重写之后的方法
  • 如果子类继承的父类和实现的接口中声明了同名同参的方法,那么子类在没有重写该方法,则调用时,实现的是父类中的方法------类优先原则
  • 如果实现类实现了多个接口,而这多个接口中定义了同名同参的默认方法,那么实现类在没有重写的情况下,报错----接口冲突,解决办法:必须重写该同名同参的方法。

4.接口中不可以定义构造器,意味着接口不可以实例化

5.Java开发中,接口通过让类去实现implements的方式来使用

interface FilType{
    //全局常量
    public static final int age=3;
    int age1=4;
    //抽象方法
    public abstract void eat();
    public abstract void walk();
}
class Exment implements FilType{
    @Override
    public void eat() {
        System.out.println("吃东西");
    }
    @Override
    public void walk() {
        System.out.println("走路");
    }
}

如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化。

如果实现类没有覆盖接口中的所有抽象方法,则此实现类仍为一个抽象类。

6.Java类可以实现多个接口,弥补了java单继承的局限

格式:class AA extends BB implements CC,DD,EE

7.接口与接口之间可以继承,而且可以多继承

8.接口的具体使用,体现多态性

9.接口,实际上可以看做是一种规范。

以上是接口的基本详解!


目录
相关文章
|
2天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
2天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
2天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
8 0
|
8天前
|
安全 Java 机器人
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
19 0
|
8天前
|
Java 开发者
探索 Java 的函数式接口和 Lambda 表达式
【4月更文挑战第19天】Java 中的函数式接口和 Lambda 表达式提供了简洁、灵活的编程方式。函数式接口有且仅有一个抽象方法,用于与 Lambda(一种匿名函数语法)配合,简化代码并增强可读性。Lambda 表达式的优点在于其简洁性和灵活性,常用于事件处理、过滤和排序等场景。使用时注意兼容性和变量作用域,它们能提高代码效率和可维护性。
|
9天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
14 0
Java接口中可以定义哪些方法?
|
10天前
|
设计模式 Java
Java接口与抽象类
Java接口与抽象类
17 0
|
11天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
15天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
35 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
15天前
|
存储 Java 编译器
对象的交响曲:深入理解Java面向对象的绝妙之处
对象的交响曲:深入理解Java面向对象的绝妙之处
47 0
对象的交响曲:深入理解Java面向对象的绝妙之处