java 子类强制转换为父类,父类强制转换为子类调用问题
答案:2 悬赏:80
解决时间 2021-01-24 23:33
- 提问者网友:焚苦与心
- 2021-01-24 07:41
java 子类强制转换为父类,父类强制转换为子类调用问题
最佳答案
- 二级知识专家网友:深街酒徒
- 2021-01-24 07:57
类A = (类A)类aaa;
追问:求解
class a{
}
class b extends a{
public void mb_vb(){
System.out.println("sub");
}
}
public class HHGGHG {
public static void main(String[] args) {
b app=(b)new a();
//插入语句输出sub
}
}
追答:就是 app.mb_vb();
但父类转成子类,是失败的
public class TT extends T{
protected String tt="ttClass";
public static void main(String args[]) {
TT tt = new TT();
Tt= new T();
Tt1 = (T) tt;
System.out.println("t="+t+" ,t.t="+t.t);
System.out.println("tt="+tt+" , tt.tt="+tt.tt+",tt.t="+tt.t);
System.out.println("t1="+t1+" ,t.t="+t.t);
TT tt1 = (TT) t;
System.out.println("tt1="+tt1);
}
}
class T {
protected String t="tClass";
}
t=T@4f1d0d ,t.t=tClass
tt=TT@1fc4bec , tt.tt=ttClass,tt.t=tClass
t1=TT@1fc4bec ,t.t=tClass
Exception in thread "main" java.lang.ClassCastException: T cannot be cast to TT
at TT.main(TT.java:12)
另外,类名应该头字母大写。
追问:求解
class a{
}
class b extends a{
public void mb_vb(){
System.out.println("sub");
}
}
public class HHGGHG {
public static void main(String[] args) {
b app=(b)new a();
//插入语句输出sub
}
}
追答:就是 app.mb_vb();
但父类转成子类,是失败的
public class TT extends T{
protected String tt="ttClass";
public static void main(String args[]) {
TT tt = new TT();
Tt= new T();
Tt1 = (T) tt;
System.out.println("t="+t+" ,t.t="+t.t);
System.out.println("tt="+tt+" , tt.tt="+tt.tt+",tt.t="+tt.t);
System.out.println("t1="+t1+" ,t.t="+t.t);
TT tt1 = (TT) t;
System.out.println("tt1="+tt1);
}
}
class T {
protected String t="tClass";
}
t=T@4f1d0d ,t.t=tClass
tt=TT@1fc4bec , tt.tt=ttClass,tt.t=tClass
t1=TT@1fc4bec ,t.t=tClass
Exception in thread "main" java.lang.ClassCastException: T cannot be cast to TT
at TT.main(TT.java:12)
另外,类名应该头字母大写。
全部回答
- 1楼网友:时间的尘埃
- 2021-01-24 08:11
我暂时保留我的看法!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯