@@ -5,31 +5,85 @@ extends, implementsλ₯Ό ν° μκ°μμ΄ μ΅κ΄μ μΌλ‘ μ°λ€κ°, μ΄λ κ² λ€
5
5
# 7. μμ
6
6
μμ : λΆλͺ¨κ° μμμκ² λ¬Όλ €μ£Όλ νμ
7
7
- λΆλͺ¨ ν΄λμ€μ λ©€λ²λ₯Ό μμ ν΄λμ€μκ² λ¬Όλ €μ€ μ μλ€.
8
- - extends
9
- -
10
- ## ν΄λμ€ μμ
8
+ - class μμ extends λΆλͺ¨
9
+ - μ½λμ μ€λ³΅μ λ§κ³ , ν΄λμ€μ μμ μ μ΅μννλ©° μ μ§λ³΄μ μκ°μ μ€μΈλ€.
10
+ - μμ μ λΆλͺ¨μ λͺ¨λ νλ,λ©μλλ₯Ό λ¬Όλ €λ°λ κ²μ μλκ³ private μ κ·Ό μ νμ μ μΈλλ€.
11
+ - μλ°λ λ€μ€ μμμ νμ©νμ§ μλλ€.
12
+
13
+
11
14
12
15
## λΆλͺ¨ μμ±μ νΈμΆ
16
+ - μμ κ°μ²΄λ₯Ό μμ±νλ©΄ λΆλͺ¨ κ°μ²΄κ° λ¨Όμ μμ±λκ³ μμ κ°μ²΄κ° κ·Έ λ€μμ μμ±λλ€.
17
+ - λͺ¨λ κ°μ²΄λ ν΄λμ€μ μμ±μλ₯Ό νΈμΆν΄μΌλ§ μμ±λλλ°, λΆλͺ¨ μμ±μλ₯Ό μ΄λμ νΈμΆνλλ©΄.. λ°λ‘ super(); μλ€.
18
+ - μλ΅κ°λ₯νμ§λ§, λΆλͺ¨ν΄λμ€μ κΈ°λ³Έ μμ±μκ° μκ³ λ§€κ°λ³μκ° μλ μμ±μλ§ μλ€λ©΄
19
+ - μμν΄λμ€μμλ λͺ
μμ μΌλ‘ super(λ§€κ°λ³μ, , ...) λΌκ³ νΈμΆν΄μΌ νλ€.
13
20
14
21
## λ©μλ μ¬μ μ
22
+ 1 . λΆλͺ¨ ν΄λμ€μ λͺ¨λ λ©μλκ° μμ ν΄λμ€μ λ§κ² μ€κ³λμ΄ μλ€λ©΄, κ°μ₯ μ΄μμ μ΄μ§λ§ μ΄λ€ λ©μλλ μμ ν΄λμ€κ° μ¬μ©νκΈ°μ μ ν©νμ§ μμ μλ μλ€.
23
+ 2 . μ΄ κ²½μ° μμλ μΌλΆ λ©μλλ μμ ν΄λμ€μμ λ€μ μμ ν΄μ μ¬μ©ν΄μΌ νλ€.
24
+ 3 . μ΄λ° κ²½μ°λ₯Ό μν΄ λ©μλ μ€λ²λΌμ΄λ© κΈ°λ₯μ μ 곡νλ€.
25
+ -> μλ°μμ @Override μ¬μ©
26
+ 4 . μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λ©νκ² λλ©΄, λΆλͺ¨ ν΄λμ€μ λ©μλλ μ¨κ²¨μ§κ³ μ€λ²λΌμ΄λ© λ μμ λ©μλλ§ μ¬μ©λλ€. λΆλͺ¨ ν΄λμ€ λ©μλλ₯Ό νΈμΆνκ³ μΆλ€λ©΄ super.λΆλͺ¨λ©μλ(); νλ©΄ λ¨
27
+
15
28
16
29
## final ν΄λμ€μ final λ©μλ
30
+ - ν΄λμ€/λ©μλ μ μΈ μμ final ν€μλλ₯Ό λΆμ΄λ©΄ μμκ³Ό κ΄λ ¨μ΄ μλ€.
31
+ - ν΄λμ€ μ μΈμ final ν€μλλ₯Ό λΆμ΄λ©΄ μ΅μ’
μ μΈ ν΄λμ€ μ΄λ―λ‘ μμν μ μλ€.
32
+ - λ©μλ μ μΈ μ final ν€μλλ₯Ό λΆμ΄λ©΄, μ΄ λ©μλλ μ΅μ’
μ μΈ λ©μλμ΄λ―λ‘, μ€λ²λΌμ΄λ©ν μ μλ λ©μλκ° λλ€.
17
33
18
- ## protected μ κ·Ό μ νμ
34
+ ## protected μ κ·Ό μ νμ (νλ, μμ±μ, λ©μλ μ μΈμ μ¬μ©)
35
+ - protectedλ publicκ³Ό defaultμ μ€κ° μ―€μ΄λ€.
36
+ - κ°μ ν¨ν€μ§μμλ defaultμ κ°μ΄ μ κ·Ό μ νμ΄ μμ
37
+ - λ€λ₯Έ ν¨ν€μ§μμλ μμ ν΄λμ€λ§ μ κ·Όμ νμ©νλ€. (μ΄κ² ν¬μΈνΈ!)
19
38
20
39
## νμ
λ³νκ³Ό λ€νμ±
21
-
22
- ## μΆμν΄λμ€
23
-
40
+ λ€νμ±μ κ°μ νμ
μ΄μ§λ§ μ€ν κ²°κ³Όκ° λ€μν κ°μ²΄λ₯Ό μ΄μ© ν μ μλ μ±μ§μ λ§νλ€.
41
+ νλμ νμ
μ μ¬λ¬ κ°μ²΄λ₯Ό λμ
ν¨μΌλ‘μ¨ λ€μν κΈ°λ₯μ μ΄μ©ν μ μλλ‘ ν΄μ€λ€.
42
+ λ€νμ±μ μν΄ μλ°λ λΆλͺ¨ ν΄λμ€λ‘ νμ
λ³νμ νμ©νλ€.
43
+ μ¦, λΆλͺ¨ νμ
μ λͺ¨λ μμ κ°μ²΄κ° λμ
λ μ μλ€.
44
+ μ΄ λ, μμ μμνμ
μ΄ λΆλͺ¨νμ
μΌλ‘ κ°μ νμ
λ³ν (Casting) λ μ μκ³ , μ΄λ λλ‘ νμΈν΄μΌκ² μ΄
45
+ λ°λ‘ instanceof π
24
46
25
47
```
26
- try {
48
+ boolean result = μ’ν(κ°μ²΄) instanceof μ°ν(νμ
)
49
+
50
+ public vod method(Parent parent){
51
+ if(parent istnaceof Child){ //κ°μ νμ
λ³ν κ°λ₯ : True , false λ‘ λ°ν
52
+ Child child = (Child) parent;
53
+ }
27
54
}
28
55
```
29
56
30
57
31
58
32
59
60
+ ## μΆμν΄λμ€
61
+ μΆμμ μ€μ²΄ κ°μ 곡ν΅λλ νΉμ±μ μΆμΆν κ²μ΄κ³ κ°μ²΄λ₯Ό μ§μ μμ±ν μ μλ ν΄λμ€λ₯Ό μ€μ²΄ ν΄λμ€λΌκ³ νλ€.
62
+ μΆμ ν΄λμ€μ μ€μ²΄ ν΄λμ€λ μμμ κ΄κ³λ₯Ό κ°μ§κ³ μλ€.
63
+ μΆμ ν΄λμ€λ μλ‘μ΄ μ€μ²΄ ν΄λμ€λ₯Ό λ§λ€κΈ° μν΄ λΆλͺ¨ ν΄λμ€λ‘λ§ μ¬μ©λλ€.
64
+
65
+ ### μΆμ ν΄λμ€μ μ©λ
66
+ 1 . μ€μ²΄ ν΄λμ€λ€μ 곡ν΅λ νλμ λ©μλμ μ΄λ¦μ ν΅μΌν λͺ©μ
67
+ νΈλν° ν΄λμ€λ₯Ό μ€κ³νλ€ νλ©΄,
68
+ - νλλͺ
λΆμΌμΉ
69
+ Telephone ν΄λμ€μμ owner, SmartPhoneμμλ userλΌκ³ μ μ₯
70
+ - λ©μλλͺ
λΆμΌμΉ
71
+ Telephone ν΄λμ€μμ powerOn(), SmartPhoneμμλ turnOn()
72
+ μ΄λ κ² κ³΅ν΅λ νλμ λ©μλ μ΄λ¦μ ν΅μΌ νκΈ° μν΄ μ¬μ©νλ€.
73
+
74
+ 2 . μ€μ²΄ ν΄λμ€ μμ±μ μκ° μ μ½
75
+ κ³΅ν΅ νλ/λ©μλλ μΆμ ν΄λμ€μΈ Phoneμ λͺ¨λ μ μΈνκ³ , μ€μ²΄ ν΄λμ€λ§λ€ λ€λ₯Έ μ λ§ μ μΈνκ² λλ©΄, μ€μ²΄ ν΄λμ€ μμ±μμ μκ°μ μ μ½ ν μ μλ€.
76
+ μ¦ μΆμ ν΄λμ€λ μ€κ³ κ·κ²©μ μνμ νκ² λλ€.
77
+ ```
78
+ public abstract class ν΄λμ€{
79
+ //νλ
80
+ //μμ±μ
81
+ //λ©μλ
82
+ }
83
+ ```
84
+ - μμ ν΄λμ€μμ μΆμ λ©μλλ₯Ό Overrideνμ§ μλλ€λ©΄ μλ¬κ° λ°μνλ€.
85
+
86
+
33
87
# 8. μΈν°νμ΄μ€
34
88
## μΈν°νμ΄μ€
35
89
- κ°μ²΄μ μ¬μ©λ°©λ²μ μ μν νμ
0 commit comments