[问题] casting问题

楼主: myis000 (silence)   2016-11-12 10:59:43
abstract class A1 {
public abstract void m1();
public void m2() {
System.out.println("Green");
} }
class A2 extends A1 {
public void m3(){
System.out.println("Green");
}
public void m1() {
System.out.println("Cyan");
}
public void m2() {
System.out.println("Blue");
} }
public class q19 extends A2 {
public void m1() {
System.out.println("Yellow");
}
public void m2() {
System.out.println("Pink");
}
public void m3() {
System.out.println("Red");
}
public static void main(String[] args) {
A2 tp = new A2();
tp.m1();
tp.m2();
((q19)tp).m3();//ClassCastException: A2 cannot be cast to q19
} }
java新手求解 这种runtime error是哪里有问题 研究803乱改出来的
作者: pttworld (批踢踢世界)   2016-11-12 11:12:00
A2 tp = new q19();
作者: ssccg (23)   2016-11-12 11:52:00
A2的物件不是一个q19的物件
楼主: myis000 (silence)   2016-11-12 13:14:00
m3要用q19的方法只能new新obj?
作者: ssccg (23)   2016-11-12 13:28:00
A2的物件就不是一个q19的物件,怎么会有q19的m3
楼主: myis000 (silence)   2016-11-12 14:20:00
A2 td = new q19();td.m3();
作者: dannypsnl (秦书)   2016-11-13 20:12:00
你不能把父类别的物件转型成子类别

Links booklink

Contact Us: admin [ a t ] ucptt.com