interface
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
interface ttest {
//public static final
String s = "a";
}
public class Test implements ttest {
String s = "b";
public static void main(String[] args) {
ttest t = new Test();
System.out.println(t.s);//a
// t.s = "c";// 报错
}
}
输出的是a。因为接口中的变量默认是 public static final 的,即常量,无法被子类或实现类所修改。在这个例子中,接口 ttest 中的变量 s 被赋值为 ‘a’,而实现类 Test 中的变量 s 被赋值为 ‘b’,但是在 main 方法中,ttest t = new Test() 创建的对象是 Test 类型,但是访问的是接口中的变量 s,因此输出的是接口中的常量值 ‘a’。
static String s = "b";
public static void main(String[] args) {
ttest t = new Test();
System.out.println(t.s);//a
// t.s = "c";// 报错
System.out.println(Test.s);//b
}
改成
Test中的s改成static,输出的时候就是b