类的构造方法是否不能在子类中覆盖? 类的构造方法是否不能在子类中覆盖?NO请分析一下静态的含义,方法和变量加static有什么意义?实例生成前就以加载 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很显然,构造函数是不能被复写的.(也许是构造函数隐含有final属性)public class Pack1 { public static String test = "test"; public Pack1() { } public static String static_getPack() { return "Pack1"; } public String getPack() { return "Pack1"; }}public class Pack2 extends Pack1 { public static String static_getPack() { return "Pack2"; } public String getPack() { return "Pack2"; } public static void main(String[] args) { System.out.println(Pack1.test);//实例化之前已经加载 System.out.println(Pack1.static_getPack());//实例化以前已经加载 Pack1 p1_1 = new Pack1(); Pack1 p1_2 = new Pack1(); Pack1 p1_p2 = new Pack2(); Pack2 p2_1 = new Pack2(); System.out.println(p1_1.test == p1_2.test); System.out.println(p1_2.static_getPack()); System.out.println(p2_1.static_getPack()); System.out.println(p1_p2.getPack()); System.out.println(p1_p2.static_getPack()); }}结果:test//实例化前已经加载Pack1//实例化前已经加载true//对于两个实例,他们的静态属性相等(而不仅仅是equals)Pack1//pack1的静态函数依然存在Pack2//pack2的静态函数依然存在Pack2//pack1的动态函数被pack2的函数动态绑定Pack1//pack1的静态函数没有被绑定结果就可以看出,任何一个静态属性在内存中的实例只有一个.是在实例化前就已经加载的.对于方法来说,也是一样,而子类可以如普通方法一样重载父类的static方法.而不构成复写.. 稍微想想也知道不行啊,父类的构造函数名是父类名,子类的构造函数名是子类名,假如可以覆写父类的构造函数,就得在子类中定义一个以父类名为名的构造函数,这就出现矛盾了:子类中出现了一个不是以子类名为名的构造函数!so,can not! ?求助此程序哪错了??? Java如何sleep当前的全部线程? 帮忙看一句代码,这是向上转型么?怎么样才能向上转型? 如何利用JDBC捕获database的动态端口和静态端口 关于JList的问题~~~~~~~~~ 难道java做不出标准windows界面吗?比如 感觉按钮都是用线画出来的。无法实现xp的效果。 这是package问题吗? 关于repaint() 那位兄弟给段代码:连接Oracle数据库的。 Jbuilder5 的注册码!!!急急急! 这个字“嫕"读yi(女医心), 它在数据库中存储正确,但在jsp页面显示乱码,在线等待!!! 一个很简单的多线程问题
} public static String static_getPack() {
return "Pack1";
} public String getPack() {
return "Pack1";
}
}public class Pack2 extends Pack1 { public static String static_getPack() {
return "Pack2";
} public String getPack() {
return "Pack2";
} public static void main(String[] args) { System.out.println(Pack1.test);//实例化之前已经加载
System.out.println(Pack1.static_getPack());//实例化以前已经加载 Pack1 p1_1 = new Pack1();
Pack1 p1_2 = new Pack1();
Pack1 p1_p2 = new Pack2();
Pack2 p2_1 = new Pack2();
System.out.println(p1_1.test == p1_2.test); System.out.println(p1_2.static_getPack());
System.out.println(p2_1.static_getPack());
System.out.println(p1_p2.getPack());
System.out.println(p1_p2.static_getPack()); }}
结果:
test//实例化前已经加载
Pack1//实例化前已经加载
true//对于两个实例,他们的静态属性相等(而不仅仅是equals)
Pack1//pack1的静态函数依然存在
Pack2//pack2的静态函数依然存在
Pack2//pack1的动态函数被pack2的函数动态绑定
Pack1//pack1的静态函数没有被绑定
结果就可以看出,任何一个静态属性在内存中的实例只有一个.是在实例化前就已经加载的.
对于方法来说,也是一样,而子类可以如普通方法一样重载父类的static方法.而不构成复写..