- 问题一:接口和super关键字
public class Jim implements Jim1, Jim2 { @Override public void jim() { Jim2.super.jim();//问题:这里为什么要这么用super Jim1.super.jim(); } public static void main(String[] args) { new Jim().jim(); } } interface Jim1 { default void jim() { System.out.println("Jim1::jim"); } } interface Jim2 { default void jim() { System.out.println("Jim2::jim"); } }
这段代码输出:
Jim2::jim Jim1::jim
- 问题二:静态类中为什么可以有非静态方法
public class TestBed { public void f() { System.out.println("f()"); } public static class StaticClass { //静态内部类中为什么可以有非静态方法? public void test(){ System.out.println("static class method"); } public static void main(String[] args) { TestBed testBed = new TestBed(); testBed.f(); StaticClass staticClass = new StaticClass(); staticClass.test(); } } }
这段代码输出:
f() test
public interface ClassInInterface { void howdy();//非静态方法 //接口里的类都是static的,为什么能有非静态方法? class Test implements ClassInInterface { @Override public void howdy() { System.out.println("Howdy!"); } public static void main(String[] args) { new Test().howdy(); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)