| 1 | = Java的 介面、類別 = |
| 2 | |
| 3 | * 類別是實體的,因此他可以繼承(extends),並且可以用new 來產生 |
| 4 | |
| 5 | * 由以下範例可得知Father whoami = new Son(); 這樣產生出的物件,其實還是Father物件,可想做 (Father)(new Son())父類別的強制轉型 |
| 6 | {{{ |
| 7 | #!java |
| 8 | class Father { |
| 9 | String Iam = "father"; |
| 10 | } |
| 11 | class Son extends Father { |
| 12 | String Iam = "son"; |
| 13 | } |
| 14 | public class test { |
| 15 | Father whoami = new Son(); |
| 16 | System.out.println ( whoami.iam ); |
| 17 | } |
| 18 | }}} |
| 19 | {{{ |
| 20 | father |
| 21 | }}} |
| 22 | |
| 23 | |
| 24 | * 介面為需要實做的類別,因此無法用new產生,且無法用extends繼承 |
| 25 | * 產生介面唯一能用的是implement在指定的類別上 |
| 26 | * implement 可以多重繼承 |
| 27 | * 一旦繼承了,就一定要實做內部的功能 |
| 28 | * 需要被實做的功能,一定有一個特性,就是這個功能會有帶入的參數,於是我們就可以使用這些參數來進行實做 |
| 29 | * 以下實做了圖形介面的按鍵,由於implements ActioinListener,因此要實做actionPerformed功能,而這功能可以用他的event來進行實做 |
| 30 | {{{ |
| 31 | class A extends Applet Implements ActionListener { |
| 32 | ... |
| 33 | void actionPerformed(ActionEvent event){ |
| 34 | event.getSource(); |
| 35 | ... |
| 36 | } |
| 37 | } |
| 38 | }}} |