`
leonzhx
  • 浏览: 804639 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

为什么Java interface的field要默认为public static final

    博客分类:
  • Java
 
阅读更多

网上有很多人问这个问题,也有很多答案。但这些答案我都觉得不是很令人信服,以下谈谈我的理解。

 

首先,interface就是一个定义接口的地方,是给所有人用的,你做成private就没有了意义。

其次,当实现类初始化的时候是不会去初始化所谓的基类(interface)对象的,interface也没有构造函数的实现,所以interface的域必然是static的也就是大家共享的。

最后,final我就不是很理解了,可能是因为interface是定义标准的地方,是share给所有人用的,不应该由任何人修改吧。

 

但我有一点很不理解,为什么interface 不能有static 的initializer呢?从而导致其不能有final blank。不过有没有这个区别倒真的不大,只是语法上的区别。

分享到:
评论

相关推荐

    java面向对象

    public static final double PI = 3.14; } ``` #### 十六、抽象类 抽象类不能被实例化,主要用于被其他类继承。抽象类中可以包含抽象方法,抽象方法只有方法签名,没有方法体。 示例代码: ```java public ...

    java的宝贵的算法资料

    - **描述:**探讨Java中一些关键概念及其背后的实现原理,如`static`、`final`等。 - **示例:** - `static`关键字的作用: - 修饰成员变量和方法时,表示它们是类级别的,而不是实例级别的。 - `static`方法...

    Android java应掌握的基本概念 大全

    - 接口中可以定义常量,但必须是 `public static final` 类型。 - 一个类可以实现多个接口。 **例子:** ```java public interface ActionListener { void actionPerformed(ActionEvent e); } public class ...

    常见常用api

    Java 是一种基于面向对象编程(OOP)原则的语言,它的核心设计理念是将现实世界中的实体抽象为类(class),通过类来创建对象,以此来模拟现实世界的操作。在Java中,除了基本类型(primitive types)外,一切都是...

    java注解详解

    - 只能声明`public static final`常量。 - 只能声明`public abstract`方法。 - **方法声明**: - 方法默认是`public abstract`。 - 可以为方法声明默认值。 - 返回类型可以是基本类型、`String`、`Class`、枚举...

    java学习个人期末备考题目测试练习

    - **`public`**: 当一个类或方法被声明为 `public` 时,它们可以在任何地方被访问。例如: ```java public class MyClass { public void myMethod() {} } ``` - **`private`**: `private` 修饰的类成员只能被...

    Java Unsafe类的使用.docx

    Java的Unsafe类是一个强大的工具,它位于rt.jar包中,提供了原子级别的操作,这些操作都是通过JNI(Java Native Interface)直接调用本地C++库实现的。Unsafe的存在是为了应对高并发环境下的数据同步问题,其核心...

    java全集.pdf JAVA全集

    ### Java全集知识点总结 #### 一、Java的特点与运行原理 **1.1 Java特点** - **简单性**:Java的设计目标之一是使编程变得简单直观。 - **面向对象**:Java是一种纯面向对象的语言,支持封装、继承、多态等特性。...

    java面试宝典

    96、Hibernate工作原理及为什么要用? 22 97、Hibernate是如何延迟加载? 22 98、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101...

    JAVA经典题目.pdf

    根据提供的文件信息,我们可以归纳和展开以下相关的Java知识点: ### 1. Java语言的优势 Java 作为一种广泛应用的编程语言,具备以下显著优势: - **免费且开源**:Java 是一个开放源代码的软件,任何人都可以...

    Java笔记word.docx

    public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 22. 批量删除 在执行批量删除操作时,可以使用`IN`子句指定要删除的记录ID列表。 **示例**: ```...

    java反射及动态代理

    ### Java反射机制详解 #### 一、Type及其子类 `Type`是Java编程语言中所有类型的公共高级接口。它包括原始类型、参数化类型、数组类型、类型变量和基本类型。 - **原始类型**:如`int`, `double`等。 - **参数化...

    《Java程序设计》期末考试试卷A.docx

    5. **关键字**:题目中提到了`static`, `final`, `abstract`等,这些都是Java的关键字,分别表示静态、常量和抽象方法或类。 6. **this和super**:`this`关键字在Java中用来引用当前对象,而`super`则用来访问父类...

    JAVA SKD5.0实例宝典.rar

    11. **比较器接口(Comparator Interface)**:在Java 5.0中,可以使用匿名内部类或Lambda表达式自定义比较规则,如`Collections.sort(list, new Comparator() { public int compare(String a, String b) { return a...

    JAVA 文法1

    类声明包括访问修饰符(public, abstract, final)、类名、可选的父类(通过`extends`关键字)和实现的接口(通过`implements`关键字),以及类体(包含方法和字段)。 - **接口声明** (interface declaration):...

    【05-面向对象(下)】

     –常量都是:public static final修饰  –方法都是:public abstract 修饰  –内部的类:public static 接口的继承 •接口的继承和类继承不一样,接口完全支持多继承,子接口扩展某个父接口将会...

    Java中的类及接口

    public static void main(String[] args) { Product p = new Product("Laptop", 999.99); p.print(); // 输出: Product Name: Laptop, Price: 999.99 } } ``` 这个例子展示了如何定义一个类以及如何实现一个...

    java笔试,java

    - 关键字:如`public`, `private`, `protected`, `static`, `final`, `abstract`, `void`, `class`, `interface`等。 - 数据类型:基本类型(如`int`, `double`, `char`)与引用类型(类、接口、数组)。 - 控制...

    Eclipse各种图标含义

    * 公共接口(Public Interface):表示一个公共的 Java 接口。 * 私有接口(Private Interface):表示一个私有的 Java 接口。 * 受保护的接口(Protected Interface):表示一个受保护的 Java 接口。 成员和字段...

    java语言常用语法

    - 常量:使用`final`关键字定义常量,例如`public static final int MAX_VALUE = 100;`。 2. **控制流程** - 条件语句:`if`, `if-else`, `switch`用于条件判断。 - 循环:`for`, `while`, `do-while`循环结构。...

Global site tag (gtag.js) - Google Analytics