为什么接口里面的值必须是常量final

知识点1:一个类,首先他会在内存里面有一个类对象,然后由类对象生成类的对象

知识点2:为什么接口Interface里面的值必须是常量呢?

因为类可以被实例化,实例化的类的对象里面的变量就会被赋初始值。比如String 是  null   int是0,double是0.0。

但是接口呢?接口不能被实例化,所以接口里面如果是变量的话不会被赋初始值这样就会出问题。所以接口里面的值必须是常量final而且一定是static不管写不写都是(这句话引用自李老师的讲课内容)

知识点3:那为什么它要是静态的呢?

因为static是什么?是所有对象可以访问,而且可以直接通过类名访问。

接口有对象么?显然没有,必须通过类名来访问所以是要静态的。

时间: 2024-08-01 20:10:21

为什么接口里面的值必须是常量final的相关文章

抽象类和接口作为返回值类型的问题

1 /* 2 返回值类型 3 引用类型: 4 类:返回的是该类的对象 5 抽象类:返回的是该抽象类的子类对象 6 接口: 7 */ 8 abstract class Person { 9 public abstract void study(); 10 } 11 12 class PersonDemo { 13 public Person getPerson() { 14 //Person p = new Student(); 15 //return p; 16 17 return new St

?Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1.2语言快速入门v2.0. [示例7-11]以下的代码就为外部参数toString.withJoiner设置了默认的参数"Swift"和"---".代码如下: import Foundation func join(string s1: String, toString

jquery根据接口返回的值来设置asp:CheckBoxList的选中值

接口返回一个json的值,然后通过jquery来选中asp:CheckBoxList相应选中的值 <asp:CheckBoxList runat="server" RepeatColumns="4" ID="cklistLMLX"> <asp:ListItem Text="柏油" Value="柏油"></asp:ListItem> <asp:ListItem Te

ETL工具kettle的几个小插件(字符串替换,字段选择,将字段值设置为常量)

继续给大家介绍几个小组件:一.字符串替换这个功能类似于oracle的replace函数,就是将某个字段的某些字符替换成我们给定的字符首先,选择[输入流字段],[输出流字段]自己命名(就是用来保存处理后的结果的字段,可以和输入流字段保持一致),可以选择[使用正则表达式],[搜索]就是你希望被替换的字符.字符串,可以是一个正则表达式,[使用,,,替换]就是你期望用什么值替换被替换的部分,[设置为空串]就是将被选择的部分用空替换,[使用字段值替换]你可以使用现有的某个字段的值替换你期望被替换的部分,后

postman 上一个接口的返回值作为下一个接口的入参

在使用postman做接口测试的时候,在多个接口的测试中,如果需要上一个接口的返回值作为下一个接口的入参,其基本思路是: 1.获取上一个接口的返回值 2.将返回值设置成环境变量或者全局变量 3.设置下一个接口的参数形式 列子: 存在两个接口(设置微信公众号的测试号的菜单栏的接口) 1.第一个接口用户获取access_token.https://api.weixin.qq.com/cgi-bin/token?三个参数如下. 2.第二个接口用户设置菜单栏. 在这两个接口中,我们需要将第一个接口返回的

接口需要上一个接口的返回值(unittest)

import unittest,requests ''' 使用unittest框架的时候,这个接口需要上一个接口的返回值 ''' class Test_case(unittest.TestCase): def setUp(self): #定义全局变量使用globals()函数来 字典形式的 self.g = globals() self.s = requests.session() #创建session()保持连接 print('开始') def test_a(self): print(self

PHP接口中的静态变量、常量与类中静态变量、常量的区别

接口: 1 不能够定义静态变量(常量除外) 2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用 3 不能使用parent::YOUCONST的方式调用接口的常量 类: 1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问 2 const定义的变量,在子类中可以被覆盖 3 当然在类中可以定义静态成员变量了 示例: <?phpint

Java多线程之~~~Callable接口获得返回值

ThreadPoolExecutor提供了另一个非常强有力的接口,那就是callable.这个接口和runnable类似,但是实现这个 接口的方法是call方法,这个方法是可以返回值的,弥补了runnable不能返回值的悲哀.而且这个方法可以配合ThreadP oolExecutor使用,获得Future接口,从这个接口的名字我们就能知道,返回的这个类似于指向这个线程的一个指针,我 们能通过这个Future接口知道当前线程的运行情况,包括是否已经完成任务,目前运行情况,运行完成后的返回值等, 而

Java Callable接口——有返回值的线程

实际开发过程中,我们常常需要等待一批线程都返回结果后,才能继续执行.<线程等待--CountDownLatch使用>中我们介绍了CountDownLatch的使用,通过使用CountDownLatch,可以实现线程等待. JDK 1.8实现了一种更好的方式,实现线程等待与获取线程返回值,那就是Callable接口,下面我们来看看具体代码. package com.coshaho.learn; import java.util.Random; import java.util.concurren