首页 > 编程语言 >Java学习,接口

Java学习,接口

时间:2024-11-28 09:03:24浏览次数:15  
标签:Java 实现 void 接口 学习 抽象类 方法 public

接口,JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法,接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。Java 中,接口类型可用来声明一个变量,可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

定义接口:
接口使用interface关键字来定义,在接口中,所有的方法都是抽象的(即没有方法体),且默认是public的。接口中的变量默认是public、static和final的,即它们是全局常量。

public interface Animal {
    void eat();
    void sleep();
    // 默认情况下,这里的变量是public static final的
    int NUMBER_OF_LEGS = 4;
}

实现接口
类通过implements关键字来实现接口,一个类实现了一个接口时,它必须提供接口中所有方法的具体实现,除非该类被定义为抽象类。

public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("Dog is eating");
    }
 
    @Override
    public void sleep() {
        System.out.println("Dog is sleeping");
    }
}

接口的多重继承
Java不支持类的多重继承,可以通过实现多个接口来达到类似的效果。一个类可以实现多个接口,从而继承多个接口中的方法。

public interface Swimmer {
    void swim();
}
 
public class Dolphin implements Animal, Swimmer {
    // 必须实现Animal和Swimmer接口中的所有方法
}

默认方法和静态方法
Java 8开始,接口中可以包含有具体实现的方法,即默认方法(使用default关键字)和静态方法(使用static关键字)。

public interface NewAnimal {
    // 默认方法
    default void breathe() {
        System.out.println("Animal is breathing");
    }
 
    // 静态方法
    static void info() {
        System.out.println("This is an animal interface");
    }
}

私有方法和私有静态方法
Java 9开始,接口中可以包含私有方法和私有静态方法,这有助于在接口内部复用代码,同时保持接口的简洁性。


 
    // 私有静态方法
    private static void privateStaticMethod() {
        System.out.println("This is a private static method");
    }
 
    // 私有方法
    private void privateMethod() {
        System.out.println("This is a private method");
    }
 
    // 默认方法调用私有方法
    default void usePrivateMethod() {
        privateMethod();
    }
}

接口与抽象类的区别:
接口方法默认是public和abstract的,而抽象类中的方法可以是public、protected或default(包访问权限)的,并且它们可以有具体实现(即非抽象方法)。
一个类只能继承一个抽象类(单继承),但可以实现多个接口(多重继承)。
接口主要用于定义对象的行为,抽象类既可以定义行为,也可以定义对象的属性。

 

标签:Java,实现,void,接口,学习,抽象类,方法,public
From: https://blog.csdn.net/xuann/article/details/144097001

相关文章

  • Java学习,继承(1)
    Java继承是面向对象的编程特性,允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的字段和方法。通过继承,子类可以获得父类的所有公共(public)和保护(protected)成员,并可以添加新的成员或覆盖(override)父类的方法。基本概念父类(SuperClass):被继承的类。子类(SubClass):继承父类......
  • javaweb基于JSP+Servlet开发学生选课系统源码(管理员 教师 学生) 课程设计 毕业设计
    ......
  • 企业级短链接生成接口API推荐
    小码短链接API作为一款企业级的短链接生成工具,为企业提供了一系列强大的功能,以满足其复杂的业务需求。在这篇文章中,我们将详细探讨小码短链接API的各项功能,以及为什么它是企业级应用的理想选择。我们还将讨论如何配合自有域名和Webhook推送功能来实现更多功能。小码短链接......
  • Spring学习笔记_50——@CrossOrigin
    Spring学习笔记_46——@InitBinderSpring学习笔记_47——@RequestAttributeSpring学习笔记_49——@ResponseBody@CrossOrigin文章目录@CrossOrigin1.介绍2.场景3.源码4.Demo4.1的那个控制器或方法的CORS配置4.2全局CORS配置5.注意事项6.补充同源策略(Same-Or......
  • 通过javap反编译接口
    在Java中,接口(interface)中的方法默认都是public和abstract的,即使在源代码中没有显式地指定这两个修饰符。当你编写:publicinterfacePerson{voideat();voidsleep();}实际上等价于:publicinterfacePerson{publicabstractvoideat();publicab......
  • Java学习笔记——2024.11.27
    2024.11.27一、字符类型1.字符类型初探可以存放一个汉字(2字节)或者数字(这个c4存储的应该是ASCII编码为97的字符,也就是a)2.字符类型细节publicclassChardetial{publicstaticvoidmain(String[]args){charc1=97;System.out.println(c1)......
  • java小白入门学习之---类变量和类方法
    一、类变量(静态变量/静态属性)1.什么是类变量?类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量类变量在类加载时就初始化了(所以即使没有创建对象,只要类加载......
  • 【开源免费】基于SpringBoot+Vue.JS新闻推荐系统(JAVA毕业设计)
    博主说明:本文项目编号T056,文末自助获取源码\color{red}{T056,文末自助获......
  • 【开源免费】基于SpringBoot+Vue.JS古典舞在线交流平台(JAVA毕业设计)
    博主说明:本文项目编号T057,文末自助获取源码\color{red}{T057,文末自助获......
  • 【开源免费】基于SpringBoot+Vue.JS大学生就业招聘系统(JAVA毕业设计)
    博主说明:本文项目编号T058,文末自助获取源码\color{red}{T058,文末自助获......