class A {public: A() { init(); } virtual void init() { printf("A::init\n"); }}; class B : public A {public: B() { init(); } virtual void init() { printf("B::init\n"); }}; int main(int argc, char* argv[]){ B b; return 0;}打印结果: A::init /
public static void main(String[] args) throws Exception{ User user = new User(); user.setUid(25); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setJsonPropertyFilter(new PropertyFilter() { @Override public boolean apply(Object source, String k
先来运行一段代码 class A { public A() { init(); } public void init() { } public static void main(String[] args) { B b = new B(); System.out.println("终于i的值为:" + b.i + ",j的值为:" + b.j); } } class B extends A { int i; int j = 999; public void init
重载: 如果多个方法(包含构造方法)有相同的名字.不同的参数,便产生重载.编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配挑选出相对应的方法. 如果编译器找不到匹配的参数,就会产生编译时错误.(此过程称为重载解析) 注意:方法的返回类型并不属于重载的条件,因为不能有两个名字相同.参数相同而返回类型不同的方法.否则会编译报错.我大学就是傻逼逼的一直把返回类型当做重载条件的一部分. 重载例子如下: public class OverLoadin
//=========================== 情形一: ===============================//在网络上传递User1类对象时info属性值在网络的另一端能够接收到! public class User1 implements Serializable { public String info = null; public String userName = null; public String userPWD = null; } //=========