[問題] casting問題

看板java作者 (silence)時間8年前 (2016/11/12 10:59), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
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亂改出來的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.163.103 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1478919586.A.F39.html

11/12 11:12, , 1F
A2 tp = new q19();
11/12 11:12, 1F

11/12 11:52, , 2F
A2的物件不是一個q19的物件
11/12 11:52, 2F

11/12 13:14, , 3F
m3要用q19的方法只能new新obj?
11/12 13:14, 3F

11/12 13:28, , 4F
A2的物件就不是一個q19的物件,怎麼會有q19的m3
11/12 13:28, 4F

11/12 14:20, , 5F
A2 td = new q19();td.m3();
11/12 14:20, 5F

11/13 20:12, , 6F
你不能把父類別的物件轉型成子類別
11/13 20:12, 6F
文章代碼(AID): #1O9eMYyv (java)
文章代碼(AID): #1O9eMYyv (java)