More Related Content
Similar to Java extends (15)
More from Hyosang Hong (20)
Java extends
- 1. JAVA Class ์์
์์ฑ์ : ํํจ์
์ด๋ฉ์ผ : hyomee@naver.com
์์ค : https://github.com/hyomee/JAVA_EDU
ํ๋ก๊ทธ๋จ์ ์ฌ๋์ด ์ดํดํ๋ ์ฝ๋๋ฅผ ์์ฑ.
๋๋ ค๋ ๊พธ์คํ๋ฉด ๊ฒฝ๊ธฐ์์ ์ด๊ธด๋ค.
- 3. 1. ๊ฐ๋
8. Class ์์
โข ๋ถ๋ชจํด๋์ค๋ฅผ์ฑ์ง์์์ํด๋์ค๊ฐํฌํจ์ํค๋๋ฌธ๋ฒ์์
โข ๊ฐ์ฒด(์ฌ๋ฌผ)์๊ณตํต์ ์ธ์ฑ์ง(ํน์ฑ)์๋ชจ์์ ํด๋์ค๋ฅผ๋ง๋ค๊ณ ๋
๋ฆฝ์ ์ธ์ฑ์ง์ ๊ฐ๊ฐํด๋์ค๋ก๋ง๋ค๋ฉด์ด๋๊ณตํต์ ์ธ์ฑ์ง์๋ถ๋ชจํด๋์ค๋ผํ๊ณ ๊ฐ๋ณํด๋์ค๋ฅผ์์ํด๋์ค๋ผํ๋ค.
โ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋จ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ ์์ โ
8-1. ๊ฐ๋
ํด๋์ค ์์
์ด๋ฆ
๋์ด
์ฆ๋ช
์
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
๋ฑ๊ตํ๊ธฐ
์ถ๊ทผํ๊ธฐ
์ ๋ง์ ๋ค
๊ณต๋ถํ๊ธฐ
์ผํ๊ธฐ
์ฌ๋
์ด๋ฆ
๋์ด
ํ์์ฆ
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
๋ฑ๊ตํ๊ธฐ
๊ณต๋ถํ๊ธฐ
ํ์
์ด๋ฆ
๋์ด
์ฌ์์ฆ
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
๋ฑ๊ตํ๊ธฐ
์ถ๊ทผํ๊ธฐ
์ ๋ง์ ๋ค
๊ณต๋ถํ๊ธฐ
์ผํ๊ธฐ
์ง์ฅ์ธ
์ด๋ฆ
๋์ด
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
์ ๋ง์ ๋ค
์ผ๋ฐ์ธ
์ด๋ฆ
๋์ด
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
์ฌ๋
ํ์์ฆ
๋ฑ๊ตํ๊ธฐ
๊ณต๋ถํ๊ธฐ
ํ์
์ฌ์์ฆ
์ถ๊ทผํ๊ธฐ
์ ๋ง์ ๋ค
๊ณต๋ถํ๊ธฐ
์ผํ๊ธฐ
์ง์ฅ์ธ
์ ๋ง์ ๋ค
์ผ๋ฐ์ธ
๊ณตํต ์ฑ์ง(ํน์ง)
๊ฐ๋ณ ์ฑ์ง
๋ถ๋ชจ ํด๋์ค
์์ ํด๋์ค
์์ ํด๋์ค
- 4. 1. ๊ฐ๋
8. Class ์์
โข ์ค๋ณต๋๋์์ฑ(์ํ)๊ณผํ๋์๋ณ๋๋ก๊ด๋ฆฌํ์ฌ์ค๋ณต์ฝ๋๋ฅผ์ ๊ฑฐํ๋ค..
-์ด๋ฆ,๋์ด,๋ชธ๋ฌด๊ฒ,ํค,๋จน๊ธฐ,์ ์๊ธฐ
โข ํ์์์ฌ๋์ด๋ค,์ง์ฅ์ธ์์ฌ๋์ด๋ค.์ง์ฅ์ธ์์ฑ์ธ์ด๋ค.์ผ๋ฐ์ธ๋์ฑ์ธ์ด๋ค.์ฒ๋ผ๋ค์ํํํ์ํ ์์๋๊ฒ์๋ค์์ฑ์ด๋ผํ๋ค.
โ ์์์ ์ฝ๋ ์ค๋ณต ์ ๊ฑฐ์ ๋คํ์ฑ์ ์ํจ์ด๋ค.โ
8-1. ๊ฐ๋
๋ค์์ฑ
์ด๋ฆ
๋์ด
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
์ฌ๋
ํ์์ฆ
๋ฑ๊ตํ๊ธฐ
๊ณต๋ถํ๊ธฐ
ํ์
์ฌ์์ฆ
์ถ๊ทผํ๊ธฐ
์ ๋ง์ ๋ค
์ผํ๊ธฐ
์ง์ฅ์ธ
์ ๋ง์ ๋ค
์ผ๋ฐ์ธ
์ด๋ฆ
๋์ด
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
์ฌ๋
๊ณ ๋ฑํ์ ์ฌ์์ฆ
์ถ๊ทผํ๊ธฐ
๊ณต๋ถํ๊ธฐ
์ผํ๊ธฐ
์ง์ฅ์ธ ์ผ๋ฐ์ธ
์ ๋ง์ ๋ค
์ฑ์ธ
์ ๋ง์ ๋ค
๋ํ์
ํ์์ฆ
๋ฑ๊ตํ๊ธฐ
๊ณต๋ถํ๊ธฐ
ํ์
์์ธํ/๊ตฌ์ฒดํ
์กฐ์ ํด๋์ค
๋ถ๋ชจ ํด๋์ค ๋ถ๋ชจ ํด๋์ค
์์ ํด๋์ค ์์ ํด๋์ค
ํ์์ ์ฌ๋์ด๋ค.
์ง์ฅ์ธ์ ์ฌ๋์ด๋ค.
์ผ๋ฐ์ธ์ ์ฌ๋์ด๋ค.
๊ณ ๋ฑํ์์ ํ์์ด๋ค.
๊ณ ๋ฑํ์์ ์ฌ๋์ด๋ค.
๋ํ์์ ์ฌ๋์ด๋ค.
โฆ.
์ฌ๋์ ํ์์ด๋ค.
-> ์ด์ํ ํํ์
=> ์์์ ์์์์ ๋ถ๋ชจ๋ก ํฅํ๋ ๊ฒ์ด๋ค.
- 5. 1. ๊ฐ๋
8. Class ์์
โข ์ค๋ณต๋๋์์ฑ(์ํ)๊ณผํ๋์๋ณ๋๋ก๊ด๋ฆฌํ์ฌ์ค๋ณต์ฝ๋๋ฅผ์ ๊ฑฐํ๋ค..
-์ด๋ฆ,๋์ด,๋ชธ๋ฌด๊ฒ,ํค,๋จน๊ธฐ,์ ์๊ธฐ
โข ํ์์์ฌ๋์ด๋ค,์ง์ฅ์ธ์์ฌ๋์ด๋ค.์ง์ฅ์ธ์์ฑ์ธ์ด๋ค.์ผ๋ฐ์ธ๋์ฑ์ธ์ด๋ค.์ฒ๋ผ๋ค์ํํํ์ํ ์์๋๊ฒ์๋ค์์ฑ์ด๋ผํ๋ค.
โ ์์์ ์ฝ๋ ์ค๋ณต ์ ๊ฑฐ์ ๋คํ์ฑ์ ์ํจ์ด๋ค.โ
8-1.๊ฐ๋
๋ค์์ฑ
์ด๋ฆ
๋์ด
๋ชธ๋ฌด๊ฒ
ํค
๋จน๊ธฐ
์ ์๊ธฐ
์ฌ๋
๊ณ ๋ฑํ์ ์ฌ์์ฆ
์ถ๊ทผํ๊ธฐ
๊ณต๋ถํ๊ธฐ
์ผํ๊ธฐ
์ง์ฅ์ธ ์ผ๋ฐ์ธ
์ ๋ง์ ๋ค
์ฑ์ธ
์ ๋ง์ ๋ค
๋ํ์
ํ์์ฆ
๋ฑ๊ตํ๊ธฐ
๊ณต๋ถํ๊ธฐ
ํ์
์กฐ์ ํด๋์ค
๋ถ๋ชจ ํด๋์ค ๋ถ๋ชจ ํด๋์ค
์์ ํด๋์ค ์์ ํด๋์ค
๊ณ ๋ฑํ์์ ํ์์ด๋ค.
๊ณ ๋ฑํ์์ ์ฌ๋์ด๋ค.
๋ํ์์ ์ฌ๋์ด๋ค.
โฆ.
โข ๋ค์์ฑํํ
์ฌ๋[ ] = { new ์ฌ๋(), new ์ฌ๋() };
ํ์[ ] = { new ํ์(), new ํ์(), new ํ์() };
์ฌ๋[ ] = { new ์ฌ๋(), new ํ์(), new ์ง์ฅ์ธ(), new ์ผ๋ฐ์ธ() };
์ฌ๋ h01 = new ํ์();
์ฌ๋ h01 = new ์ง์ฅ์ธ();
์ฌ๋ h01 = new ์ผ๋ฐ์ธ();
โข ๋ฐฐ์ดํํ(์์๋์ง์์์ํ)
-๋์ผ์๋ฃํ๋ง์์๋ก๋ ์์์
โข ๋ฐฐ์ดํํ(์์๋จ)
-๋ถ๋ชจ์์ฑ์ง(ํน์ฑ)์๋ชจ๋๋ฐ์์์์
-๋๋ค๋ฅธํํ
- 6. 1. Class ์์ ( Extends )
8. Class ์์
8-2. Class ์์ ( Extends )
01. ํด๋์ค์์ฑ
class ์์ํด๋์ค extends ๋ถ๋ชจํด๋์ค {
โฆ.
}
์ฌ๋
ํ์ ์ง์ฅ์ธ
class ํ์ extends ์ฌ๋ { โฆ }
class ์ง์ฅ์ธ extends ์ฌ๋ { โฆ. }
์ฌ๋
๋ธ๋ฃจ์ค๋ฒ๋๋ฐ์ฌ
ํํฌ
class ๋ธ๋ฃจ์ค๋ฒ๋๋ฐ์ฌ extends ์ฌ๋, ํํฌ { โฆ }
โข ๋ค์ค์์->์๋ฐ์์๋ํ์ฉํ์ง์์
๋ธ๋ฃจ์ค๋ฒ๋๋ฐ์ฌ๊ฐ ๋ฌ๋ฆฐ๋ค -> ๋๊ฐ ๋ฌ๋ฆฌ๋ ๊ฒ์ธ๊ฐ ?
=> ๋ชจํธ์ฑ์ด ๋ฐ์ํจ
- 7. 1. Class ์์ ( Extends )
8. Class ์์
8-2. Class ์์ ( Extends )
02. ํด๋์ค์์ฑ์๋ฉ๋ชจ๋ฆฌ๊ตฌ์กฐ โข ์ฌ์ฉ
์ธ์คํด์ค ๋ฉ์๋ ์์ญ Stack ์์ญ Heap ์์ญ
eat() {}
sleep() {}
goToSchool()
study()
Human
Student
student 100 Human ๊ฐ์ฒด
( Objects )
Student ๊ฐ์ฒด
( Objects )
name age
weight height
eat() sleep())
studentId
goToSchool()
study()
100 ๋ฒ์ง
- 8. 1. Class ์์ ( Extends )
8. Class ์์
8-2. Class ์์ ( Extends )
03. ๋ถ๋ชจ๊ฐ์ฒด์์์ฑ์๋์์๋์์ด์๋๋ค.
Invalid method declaration; return type required
-> ๋ถ๋ชจ ๊ฐ์ฒด์ ์์ฑ์๋ฅผ ์ฌ์ ์ ํ๋ ค๊ณ ํด์ ๋๋ ์ค๋ฅ
-> ์์ ๊ฐ์ฒด์ ๋ฉ์๋๋ก ์ฌ์ฉ ํ์ฌ์ผ ํจ
์์ฑ์๋ ๋ฆฌํด ํ์
์ด ์์
๋ฆฌํด ํ์
์ด ์๋ ๊ฒ์ ๋ฉ์๋
04. ๋ค์์ฑ
Human
Student Adult
Worker SelfEmployed
CollegeStudent HighSchoolStudent
public class Human { }
public class Adult extends Human { }
public class Worker extends Adult { }
public class SlefEmpolyed extends Adult { }
public class Student extends Human { }
public class CollegeStudent extends Student { }
public class HighSchoolStudent extends Student { }
โข ๊ฐ์ฒด๋ฅผ ๋ค์ํ๊ฒ ์์ฑ ํ ์ ์๋ค.
-> ์คํ์, ์ด๋ฑํ์ โฆ..
- 9. 1. Class ์์ ( Extends )
8. Class ์์
8-2. Class ์์ ( Extends )
05. ๊ฐ์ฒด์์ฑ์ํ์
class com.hyomee.extend.Human cannot be cast to class com.hyomee.extend.Student
java.lang.ClassCastException: class com.hyomee.extend.Human cannot be cast to class
com.hyomee.extend.Student
java.lang.ClassCastException: class com.hyomee.extend.Human cannot be cast to class
com.hyomee.extend.Student
Up Casting : Human human = (Human) student : compiler์ ์ํด์ ์๋์ผ๋ก ์ถ๊ฐ
-> Human์ผ๋ก ์ ํ ๋์๊ธฐ ๋๋ฌธ์ student์ ์ฑ์ง(ํน์ฑ)์ ์ฌ๋ผ์ง
-> Human์ ๋ฉค๋ฒ, ๋ฉ์๋ ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
Down Casting : ๊ฐ๋ฐ์๊ฐ ์ง์ ํด์ผ ํจ
-> Student ๊ฐ์ฒด๋ฅผ ๋ณํ ํจ
-> Human, Student ์ ๋ชจ๋ ์์ฑ(๋ฉค๋ฒ), ๋ฉ์๋ ์ฌ์ฉ
Student๋ Human๋ฅผ ์์ ๋ฐ์์ Human์ ๋ชจ๋ ์ฑ์ง(ํน์ฑ)์ ์ฌ์ฉ ํ ์ ์์
-> Human, Student ์ ๋ชจ๋ ์์ฑ(๋ฉค๋ฒ), ๋ฉ์๋ ์ฌ์ฉ
Student๋ฅผ ์ฌ์ฉ ํด์ Human์ผ๋ก ์์ฑ๋จ
-> Student์ ์์ฑ(๋ฉค๋ฒ), ๋ฉ์๋ ์ฌ์ฉ ๋ถ๊ฐ
-> Human์ ๋ฉค๋ฒ, ๋ฉ์๋ ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
Human ๊ฐ์ฒด ์์ฑ
-> Human์ ๋ฉค๋ฒ, ๋ฉ์๋ ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
X
X
X
- 10. 1. Class ์์ ( Extends )
8. Class ์์
8-2. Class ์์ ( Extends )
05. ๊ฐ์ฒดํ์
ํ์ธ(instanceof ) 06. Method Overriding
โฆ
์ฌ๋
โฆ
์ ๋ง์ ๋ค
์ง์ฅ์ธ
โฆ
์ ๋ง์ ๋ค
์์์
์ ๋ง์ ๋ค
์ฑ์ธ
โฆ
์ฌ๋
โฆ
์ง์ฅ์ธ
โฆ..
์์์
์ ๋ง์ ๋ค
์ฑ์ธ
์ฑ์ธ์ ์ ๋ง์ ๋ค
์ง์ฅ์ธ์ ๋งฅ์ฃผ๋ฅผ ๋ง์ ๋ค
์์์
์๋ ์์ฃผ๋ฅผ ๋ง์ ๋ค
๋ถ๋ชจ์ ํ์(๋ฉ์๋)๋ฅผ ์ฌ
์ ์ํด์ ์์์์ ์ฌ์ ์
ํ๋ ๊ฒ -> Overriding
Overriding ์ด์
Overriding ์ดํ
- 11. 1. Class ์์ ( Extends )
8. Class ์์
8-2. Class ์์ ( Extends )
07. super & this
Overriding ์ด์
Overriding ์ดํ
โข ์ ์๋ง์ ๋ค๋ฅผ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด
super๋ฅผ ์ด์ฉํด์ ๋ถ๋ชจ ํธ์ถ
โข super :๋ถ๋ชจ์๋ฉค๋ฒ,๋ฉ์๋๋ฅผ์ ๊ทผํ ๋์ฌ์ฉ,private๋ก์ ์ธ๊ฒ์์ ๊ทผํ ์์์
โข this :์๊ธฐ์์ ์๋ฉค๋ฒ,๋ฉ์๋์ ๊ทผ
โข super() : ์์์์ฑ์์์๋ถ๋ชจ์์์ฑ์์์ ๊ทผํ๊ธฐ์ํด์์ฌ์ฉ
- 12. 1. Class ์์ ( Extends )
8. Class ์์
8-2. Class ์์ ( Extends )
08. super()
โข super() : ์์์์ฑ์์์๋ถ๋ชจ์์์ฑ์์์ ๊ทผํ๊ธฐ์ํด์์ฌ์ฉ
1
2
3
โข ์ฃผ์์ฌํญ
โข ์์ฑ์๋ฅผOverLoading Method๋ฅผ๋ง๋ค๋๋๋งค๊ฐ๋ณ์์๋๊ธฐ๋ณธ์์ฑ์๋ฅผ
์์ฑํด์ผํจ
โข super()๋ฅผ ์ฌ์ฉ ํ์ฌ ๋ถ๋ชจ ๊ฐ์ฒด๋ฅผ ์ ๊ทผ ํ๋ ๊ฒฝ์ฐ super()์คํ ์ ์
์๋ฌด๊ฒ๋์คํํ๋ฉด์๋จ
- 13. 1. Abatract Class
8. Class ์์
8-3. Abstract Class ์์ ( Extends )
โข ์ถ์๋ฉ์๋๊ฐ1๊ฐ์ด์ํฌํจํ๊ณ ์๋ํด๋์ค๋๋ฐ๋์์ถ์ํด๋์ค๋ก์ ์ํด์ผํ๋ค.
โข ์ถ์๋ฉ์๋:๋ฉ์๋์๋ณธ์ฒด๊ฐ์๋๋ฏธ์์ฑ๋ฉ์๋๋ก์์๋ฐ์ํด๋์ค์์์ค์ฒดํ(๊ตฌํ)ํด์ผํ๋ค.
โ ์ถ์ ๋ฉ์๋๊ฐ 1๊ฐ ์ด์ ํฌํจ ํ๊ณ ์๋ ํด๋์ค โ
Abatract Class
โฆ
์ฌ๋
โฆ
์ ๋ง์ ๋ค
์ง์ฅ์ธ
โฆ
์ ๋ง์ ๋ค
์์์
์ ๋ง์ ๋ค
์ฑ์ธ
โ์ฑ์ธ์ด ์ ๋ง์ ๋ค.โ๋ฅผ ์ถ์
ํ ํ๊ณ ์ง์ฅ์ธ์ด ์ ๋ง์
๋ค๋ ๊ตฌ์ฒดํ ํ๋ค.
์ถ์ ๋ฉ์๋ ์์
์ถ์ ํด๋์ค ์ ์ธ
์ถ์ ๋ฉ์๋ ๊ตฌํ
- 14. 1. Interface Class
8. Class ์์
8-4. Interface Class ์์
โข Interface๋์
์ถ๋ ฅ์์์ฌ์ฉํ๋์ฉ์ด๋ก์๋ก๋ค๋ฅธ์์คํ
๊ฐ์์ฐ๋์์๋ฏธํ๋ค.
โข Interface๋ ์์คํ
๋๋ ๊ฐ ๊ฐ์ฒด์ ์ข
๋ฅ์ ์๊ด ์์ด ๋์ผํ ํ๋์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ฌ ํธํ์ฑ์ ์ ๊ณต ํ๊ธฐ ์ํด์ ์ฌ์ฉ ๋๋ค.
โข ์๋ฐ์์Interface๋๊ฐ์ฒด๊ด๊ณ์์๋ค๋ฅธ๊ฐ์ฒด์๊ฒ๊ณต๊ฐํ ๊ธฐ๋ฅ๋ง์ถ์ํํ๊ธฐ์ํ์ฉ๋๋ก์ฌ์ฉ์ด๋๋ค.
โข Class๋์ Interfaceํค์๋๋ฅผ์ฌ์ฉํ๋ค.
โ์์คํ
๋๋ ๊ฐ ๊ฐ์ฒด์ ์ข
๋ฅ์ ์๊ด ์์ด ๋์ผํ ํ๋์ ๋ฉ์๋๋ฅผ ์ ๊ณตโ
Interface Class
01. Interface ์์ฑ
interface ์ธํฐํ์ด์ค๋ช
{
public static final ์๋ฃํ ํ๋๋ช
= ๊ฐ;
public abstract ๋ฆฌํดํ์
๋ฉ์๋๋ช
();
default ์๋ฃํ ๋ฉ์๋(๋งค๊ฐ๋ณ์) { โฆ )
}
interface ์ธํฐํ์ด์ค๋ช
{
์๋ฃํ ํ๋๋ช
= ๊ฐ;
๋ฆฌํดํ์
๋ฉ์๋๋ช
();
default ์๋ฃํ ๋ฉ์๋(๋งค๊ฐ๋ณ์) { โฆ )
}
์๋ต
- 15. 1. Interface Class
8. Class ์์
8-4. Interface Class ์์
02. Interface ์์
โข implements๋ฅผ ์ฌ์ฉํจ
โข implements๋ ๋ค์ค ์์ ๊ฐ๋ฅ -> implements์ธํฐํ์ด์ค๋ช
,์ธํฐํ์ด์ค๋ช
โข extends์ ๊ฐ์ด์ฌ์ฉํ๋๊ฒฝ์ฐextendsํด๋์ค๋ช
implements์ธํฐํ์ด์ค๋ช
์์๋ก์ ์ธํด์ผํจ
03. Interface ์ฌ์ฉ
์ธํฐํ์ด์ค๋ช
์ฐธ์กฐ๋ณ์ = new ๊ตฌํํด๋์ค();
class ํด๋์ค๋ช
implements ์ธํฐํ์ด์ค๋ช
{ .. }
class ํด๋์ค๋ช
implements ์ธํฐํ์ด์ค๋ช
, ์ธํฐํ์ด์ค๋ช
{ .. }
class ํด๋์ค๋ช
extends ํด๋์ค๋ช
implements ์ธํฐํ์ด์ค๋ช
{ .. }
์์ ๋ฐ์ ๊ฐ์ฒด์ ์๋
tatic final ๋ก ์๋ ์ถ๊ฐ ๋จ