|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的变量|详解原题:
//file:MyMain.class
classBase
{
inta=10;
publicvoidshow()
{
System.out.println(a);
}
}
classExtextendsBase
{
inta=200;
publicvoidshow(Strings)
{
System.out.println(s);
}
}
publicclassMyMain
{
publicstaticvoidmain(String[]argv)
{
Extobj=newExt();
obj.show();
obj.show("OK");
}
}
叨教,实行下面程序,运转是甚么?
========================
关于这道标题,我给出了一个复杂的准绳,如今有空特地说
分明一点这个风趣的征象。
起首要申明,我以为,属性并不是不成以override,
成员变量是能够override的,可是成员变量是在编译时剖析的
(而办法是在运转时剖析的)
如许一来,当子类要援用父类对象的属性时,实践上它会屏障
本人的同名属性,只往会见父类对象的属性,以是间接援用
变量名和经由过程办法来猎取变量的效果是纷歧样的,
这里有个十分好的例子,偶然间好悦目看,想一想
publicclassShadow{
publicstaticvoidmain(Strings[]){
S1s1=newS1();
S2s2=newS2();
System.out.println(s1.s);//printsS1
System.out.println(s1.getS());//printsS1
System.out.println(s2.s);//printsS2
System.out.println(s2.getS());//printsS2
s1=s2;
System.out.println(s1.s);//printsS1,notS2-
//sincevariableisresolvedatcompiletime
System.out.println(s1.getS());//printsS2-
//sincemethodisresolvedatruntime
}
}
classS1{
publicStrings="S1";
publicStringgetS(){
returns;
}
}
classS2extendsS1{
publicStrings="S2";
publicStringgetS(){
returns;
}
}
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。 |
|