静态成员变量是共享的,非静态成员变量各对象独立class A {int n;static int m;public A(int n,int m) {this.n=n;this.m=m;}}class Test{public static void main(String args[ ]){A a1=new A(10,11);A a2=new A(20,21);System.out.println("a1:n="+a1.n+",m="+a1.m);System.out.println("a2:n="+a2.n+",m="+a2.m);}}程序运行结果:
查看答案
接口回调的是子类重写的方法interface Person {double compute(float x,float y);}class Student implements Person {public double compute(float x,float y) {return x-y;}int compute(int x,int y) {return x*y;}}public class Test{public static void main(String args[]) {Person p=new Student();System.out.println( p.compute(30,10));}}程序运行结果:
非静态方法被子类重写,上转型对象调用的是子类重写的方法,静态方法被 子类重写,上转型对象调用的仍然是父类定义的静态方法。class SuperClass {void method() {System.out.println("SuperClass:method");}static void methodStatic() {System.out.println("SuperClass:methodStatic");}}class SubClass extends SuperClass {void method() {System.out.println("SubClass:method");}static void methodStatic() {System.out.println("SubClass:methodStatic");}}public class Test {public static void main(String[] args) {SuperClass a = new SubClass();a.method();a.methodStatic();}}程序运行结果:
String字符串是不可修改的,它的连接、取子串、替换都会生成新的字符串,原子符串不变public class Test{ public static void main(String args[]){String str="ABCDEF";str.substring(3);str.concat("XYZ");System.out.print(str);}}程序运行结果:
理解引用类型参数传递class Test{public static void main(String[] args){String s1 = "a";String s2 = "b";show(s1,s2);System.out.println(s1+s2);}public static void show(String s1,String s2){s1 = s1 +"q";s2 = s2 + s1;}}程序运行结果: