子類可以賦值給父類:
//子類物件
student stu =
newstudent()
;//把子類賦值給父類
person p = stu;
如果乙個父類裝的是子類的物件,那麼父類可以直接強轉成子類:
//子類物件stu1
student stu1 =
newstudent()
;//把子類stu1賦值給父類p
person p = stu1;
//把父類p強轉成子類,上一步是強轉的條件
student stu2 =
(student)p;
//把父類p強轉成子類
student stu3 = p as student;
//報錯,父類p中裝的是student類,無法強轉成teacher類
techer techer =
(student)p;
父類陣列可以裝多種子類:
person[
] p =
newperson[5
];p[0
]=newstudent()
;p[1]
=new
teacher()
;p[2]
=new
driver()
;p[3]
=new
programmer()
;p[4]
=new
saleman()
;//這裡呼叫的是父類的方法,因為陣列是父類型別p[0
].eat();
//先強轉成student類
student stu =
(student)p[0]
;//先強轉成teacher類
teacher teacher =
(teach)p[0]
; stu.
eat();
teacher.
eat(
);
C 黎克特制轉換
首先要知道黎克特制轉換是建立在繼承基礎之上的類與類之間的轉換 寫法可以參照資料型別轉換,隱式和強制轉換的寫法。例 int a int b b為double型別。下面用 引數關係 首先定義三個類,person 父類 teacher person子類 student person子類 1.person ...
c 黎克特制轉換
黎克特制轉換 1.子類可以賦值給父類 1 如果乙個地方需要乙個父類作為引數,我們可以給乙個子類代替 class program console.writeline str console.readkey public class person public class student person ...
C 黎克特制轉換原則
person p new teacher teacher t teacher p 如果new的時候是new的是子類,那麼在轉換這個子類的時候可以 t.sayhi person p new teacher student stu student p 如果new的是子類,轉換的時候,轉的另乙個子類,報異...