java 子类强制转换为父类,父类强制转换为子类调用问题
2个回答
展开全部
父类不能强制转换成子类~~!!!!
强制转换子类的情况 是使用父类的引用 引用了子类对象的实例 这个对象是实例的实例而不是父类的实例 这个时候才能用强制转换 否则不可以
就那那个例子 如果让你转换了的话调用mb_vb()方法的时候会发生什么?? 父类的实例根本就没有那个方法
还有你讨论的这个完全没有任何意义.................
强制转换子类的情况 是使用父类的引用 引用了子类对象的实例 这个对象是实例的实例而不是父类的实例 这个时候才能用强制转换 否则不可以
就那那个例子 如果让你转换了的话调用mb_vb()方法的时候会发生什么?? 父类的实例根本就没有那个方法
还有你讨论的这个完全没有任何意义.................
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类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();
T t = new T();
T t1 = (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)
另外,类名应该头字母大写。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询