当前位置: 技术问答>java相关
==============ClassA b=new ClassB()谁能解释!=================
来源: 互联网 发布时间:2015-03-19
本文导语: public class A{ public static void main(String arg[]){ A k=new B(); System.out.println("k's class"+k.getClass().getName()); System.out.println("k's signature"+getSignature(k)); } protected static...
public class A{
public static void main(String arg[]){
A k=new B();
System.out.println("k's class"+k.getClass().getName());
System.out.println("k's signature"+getSignature(k));
}
protected static String getSignature(A a){
return("Class A");
}
protected static String getSignatrue(B b){
return("Class B");
}
}
class B extends A{
...}
结果是ClassB Class A,别人告诉我说k是a的模型云云,那位高手能为我解释明白
getSignature和getclass().getName()的区别,谢了!!!!!!!!!!!11
public static void main(String arg[]){
A k=new B();
System.out.println("k's class"+k.getClass().getName());
System.out.println("k's signature"+getSignature(k));
}
protected static String getSignature(A a){
return("Class A");
}
protected static String getSignatrue(B b){
return("Class B");
}
}
class B extends A{
...}
结果是ClassB Class A,别人告诉我说k是a的模型云云,那位高手能为我解释明白
getSignature和getclass().getName()的区别,谢了!!!!!!!!!!!11
|
这是对象的多态问题。
1、A k=new B();是上溯造型(B是A的子类),(就是外形是A)
2、K实际是B的实例,所以k.getClass().getName())是Class B;(就是内在是B)
3、静态方法getSignature是被以A的类型(K被限定为A,如1)调用的所以,它调用的是getSignature(A a)(她看外表啦)
1、A k=new B();是上溯造型(B是A的子类),(就是外形是A)
2、K实际是B的实例,所以k.getClass().getName())是Class B;(就是内在是B)
3、静态方法getSignature是被以A的类型(K被限定为A,如1)调用的所以,它调用的是getSignature(A a)(她看外表啦)
|
就类似于:
汽车 b = new 奔驰();
这样说应该明白了吧
汽车 b = new 奔驰();
这样说应该明白了吧
|
ycats(加菲猫) 说的有道理。
这个问题需要对继承、动态绑定、静态绑定有了解。
这个问题需要对继承、动态绑定、静态绑定有了解。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。