[問題] 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