[μ½”ν‹€λ¦°] μ˜€λ²„λΌμ΄λ”© & 좔상화 & μΈν„°νŽ˜μ΄μŠ€

2024. 6. 20. 22:04Β· πŸ€– μ•ˆλ“œλ‘œμ΄λ“œ/μ½”ν‹€λ¦°
λͺ©μ°¨
  1. μ˜€λ²„λΌμ΄λ”©
  2. μ˜€λ²„λΌμ΄λ”© 방법
  3. 좔상화
  4. 좔상화 방법
  5. μΈν„°νŽ˜μ΄μŠ€
  6. μ£Όμ˜ν• μ 
728x90
λ°˜μ‘ν˜•

μ˜€λ²„λΌμ΄λ”©

  • μƒμ†μ‹œ 기본적으둜 μŠˆνΌν΄λž˜μŠ€μ— μžˆλŠ” ν•¨μˆ˜μ™€ 같은 이름, ν˜•νƒœλ₯Ό κ°€μ§„ ν•¨μˆ˜λ₯Ό μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μ“Έ 수 μ—†λ‹€.
  • ν•˜μ§€λ§Œ μŠˆνΌν΄λž˜μŠ€μ—μ„œ ν—ˆμš©ν•œλ‹€λ©΄ μ˜€λ²„λΌμ΄λ”© μ΄λΌλŠ” λ°©λ²•μœΌλ‘œ μ„œλΈŒ ν΄λž˜μŠ€μ—μ„œ 같은 이름과 ν˜•νƒœλ‘œ 된 ν•¨μˆ˜μ˜ λ‚΄μš©μ„ λ‹€μ‹œ κ΅¬ν˜„ν•  수 μžˆλ‹€.

 

μ˜€λ²„λΌμ΄λ”© 방법

  • 슈퍼클래슀의 ν•¨μˆ˜ μ•žμ— open ν‚€μ›Œλ“œλ₯Ό 뢙이면 μ„œλΈŒν΄λž˜μŠ€μ—μ„œ ν•΄λ‹Ή ν•¨μˆ˜λ₯Ό μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μž¬κ΅¬ν˜„μ΄ ν—ˆμš©λœλ‹€.
  • μ„œλΈŒν΄λž˜μŠ€μ—μ„œ ν•¨μˆ˜ μ•žμ— override ν‚€μ›Œλ“œλ₯Ό 뢙이면 μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μž¬κ΅¬ν˜„ ν•  수 μžˆλ‹€.
fun main(){
    var a = Animal()
    var t = Tiger()

    a.eat()
    t.eat()
}

open class Animal{
    open fun eat(){
        println("먹이 λƒ λƒ ")
    }
}

class Tiger : Animal(){
    override fun eat(){
        println("κ³ κΈ° λƒ λƒ ")
    }
}

 

좜λ ₯
먹이 λƒ λƒ 
κ³ κΈ° λƒ λƒ 

 

 

좔상화

  • μŠˆνΌν΄λž˜μŠ€μ—μ„œ ν•¨μˆ˜μ˜ ꡬ체적인 κ΅¬ν˜„μ€ μ—†κ³ , 슈퍼클래슀의 λͺ¨λ“  μ„œλΈŒν΄λž˜μŠ€λŠ” ν•΄λ‹Ή ν•¨μˆ˜κ°€ λ°˜λ“œμ‹œ μžˆμ–΄μ•Ό ν•œλ‹€λŠ”μ λ§Œ λͺ…μ‹œν•˜μ—¬ 각 μ„œλΈŒ ν΄λž˜μŠ€κ°€ λΉ„μ–΄μžˆλŠ” ν•¨μˆ˜μ˜ λ‚΄μš©μ„ ν•„μš”μ— 따라 κ΅¬ν˜„ν•˜λ„λ‘ ν•œλ‹€.
  • μ„ μ–ΈλΆ€λ§Œ 있고 κΈ°λŠ₯은 κ΅¬ν˜„ν•˜μ§€ μ•Šμ€ μΆ”μƒν•¨μˆ˜μ™€, μΆ”μƒν•¨μˆ˜λ₯Ό ν¬ν•¨ν•˜λŠ” 좔상 클래슀둜 κ΅¬μ„±λœλ‹€.
  • μΆ”μƒν•¨μˆ˜λŠ” 마치 λΉ„μ–΄μžˆλŠ” 껍데기 역할이닀.

 

좔상화 방법

  • 좔상 클래슀 μ•žμ— abstract ν‚€μ›Œλ“œλ₯Ό 뢙인닀.
  • 좔상 클래슀 μ•ˆ μΆ”μƒν•¨μˆ˜λ₯Ό μ„ μ–Έν• λ•Œ ν•¨μˆ˜ μ•žμ— abstract ν‚€μ›Œλ“œλ₯Ό 뢙인닀.
  • μΆ”μƒν•¨μˆ˜λŠ” 껍데기 ν•¨μˆ˜μ΄κΈ° λ•Œλ¬Έμ— λ‹¨λ…μœΌλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€. μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μΆ”μƒν•¨μˆ˜λ₯Ό 상속받아 κ΅¬ν˜„μ„ ν•΄μ€˜μ•Όμ§€ μ“Έ 수 μžˆλŠ” ν•¨μˆ˜λ‹€.
fun main(){
    var rabbit = Rabbit()

    rabbit.eat()
    rabbit.sniff()
}

abstract class Animal{
    abstract fun eat()
    fun sniff(){
        println("킁킁")
    }
}

class Rabbit : Animal(){
    override fun eat() {
        println("λ‹Ήκ·Ό λƒ λƒ ")
    }
}
좜λ ₯
λ‹Ήκ·Ό λƒ λƒ 
킁킁

 

 

μΈν„°νŽ˜μ΄μŠ€

  • μΆ”μƒν™”μ˜ λ˜λ‹€λ₯Έ 방법이닀.
  • λ‹€λ₯Έ μ–Έμ–΄μ—μ„œ μΈν„°νŽ˜μ΄μŠ€ κ°œλ…μ€ μΆ”μƒν•¨μˆ˜λ‘œλ§Œ 이루어져 μžˆλŠ” 순수 좔상화 κΈ°λŠ₯이닀. ν•˜μ§€λ§Œ μ½”ν‹€λ¦°μ—μ„œλŠ” μΈν„°νŽ˜μ΄μŠ€μ— 속성, μΆ”μƒν•¨μˆ˜, μΌλ°˜ν•¨μˆ˜ λ‹€ κ°€μ§ˆ 수 μžˆλ‹€.
  • λ‹€λ§Œ μΆ”μƒν•¨μˆ˜λŠ” μƒμ„±μžλ₯Ό κ°€μ§ˆ 수 μžˆμ§€λ§Œ, μΈν„°νŽ˜μ΄μŠ€λŠ” μƒμ„±μžλ₯Ό κ°€μ§ˆ 수 μ—†λ‹€.
  • μΈν„°νŽ˜μ΄μŠ€μ—μ„œ λ³„λ„μ˜ ν‚€μ›Œλ“œ 없이 κ΅¬ν˜„λΆ€κ°€ μžˆλŠ” ν•¨μˆ˜λŠ” μΌλ°˜ν•¨μˆ˜, κ΅¬ν˜„λΆ€κ°€ μ—†λŠ” ν•¨μˆ˜λŠ” μΆ”μƒν•¨μˆ˜λ‘œ κ°„μ£Όν•œλ‹€.
  • μ„œλΈŒν΄λž˜μŠ€λŠ” ν•œλ²ˆμ— μ—¬λŸ¬ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속받을 수 μžˆλ‹€.
fun main(){
    var dog = Dog()

    dog.run()
    dog.eat()
}

interface Runner{
    fun run()
}

interface Eater{
    fun eat(){
        println("λƒ λƒ ")
    }
}

class Dog : Runner, Eater{
    override fun run() {
        println("μš°λ‹€λ‹€λ‹€λ‹€!!")
    }
    override fun eat(){
        println("ν—ˆκ²μ§€κ² λƒ λƒ ")
    }
}
좜λ ₯
μš°λ‹€λ‹€λ‹€λ‹€!!
ν—ˆκ²μ§€κ² λƒ λƒ 

 

μ£Όμ˜ν• μ 

  • μ—¬λŸ¬κ°œμ˜ μΈν„°νŽ˜μ΄μŠ€λ‚˜ ν΄λž˜μŠ€μ—μ„œ 같은 이름과 ν˜•νƒœλ₯Ό κ°€μ§„ ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•˜κ³  μžˆλ‹€λ©΄ μ„œλΈŒν΄λž˜μŠ€μ—μ„œ ν—·κ°ˆλ¦¬μ§€ μ•Šκ²Œ λ°˜λ“œμ‹œ μ˜€λ²„λΌμ΄λ”©ν•΄μ„œ μž¬κ΅¬ν˜„ ν•΄μ€˜μ•Όν•œλ‹€.

 

πŸ’‘μ˜€λ²„λΌμ΄λ”©μ€ 이미 κ΅¬ν˜„μ΄ λλ‚œ ν•¨μˆ˜μ˜ κΈ°λŠ₯을 μ„œλΈŒν΄λž˜μŠ€μ—μ„œ λ³€κ²½ν•΄μ•Όν• λ•Œ μ“΄λ‹€.

πŸ’‘μΆ”μƒν™”λŠ” ν˜•μ‹λ§Œ μ„ μ–Έν•˜κ³  μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μ‹€μ œ κ΅¬ν˜„ ν•  λ•Œ μ“΄λ‹€.

πŸ’‘μ„œλ‘œ λ‹€λ₯Έ κΈ°λŠ₯듀을 μ—¬λŸ¬κ°œ λ¬Όλ €μ€˜μ•Όν•  λ•Œ μ“΄λ‹€.

728x90
μ €μž‘μžν‘œμ‹œ

'πŸ€– μ•ˆλ“œλ‘œμ΄λ“œ > μ½”ν‹€λ¦°' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[μ½”ν‹€λ¦°] κ³ μ°¨ν•¨μˆ˜ & λžŒλ‹€ν•¨μˆ˜  (0) 2024.06.26
[μ½”ν‹€λ¦°] μŠ€μ½”ν”„ & μ ‘κ·Όμ œν•œμž  (0) 2024.06.26
[μ½”ν‹€λ¦°] μ½”ν‹€λ¦°μ˜ ν”„λ‘œμ νŠΈ ꡬ쑰  (0) 2024.06.26
[μ½”ν‹€λ¦°] 클래슀의 상속  (0) 2024.06.20
[μ½”ν‹€λ¦°] 클래슀의 μƒμ„±μž  (0) 2024.06.20
  1. μ˜€λ²„λΌμ΄λ”©
  2. μ˜€λ²„λΌμ΄λ”© 방법
  3. 좔상화
  4. 좔상화 방법
  5. μΈν„°νŽ˜μ΄μŠ€
  6. μ£Όμ˜ν• μ 
'πŸ€– μ•ˆλ“œλ‘œμ΄λ“œ/μ½”ν‹€λ¦°' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [μ½”ν‹€λ¦°] μŠ€μ½”ν”„ & μ ‘κ·Όμ œν•œμž
  • [μ½”ν‹€λ¦°] μ½”ν‹€λ¦°μ˜ ν”„λ‘œμ νŠΈ ꡬ쑰
  • [μ½”ν‹€λ¦°] 클래슀의 상속
  • [μ½”ν‹€λ¦°] 클래슀의 μƒμ„±μž
λ•‘λ•‘πŸ‘©πŸ»β€πŸ’»
λ•‘λ•‘πŸ‘©πŸ»β€πŸ’»
κΉ€ν˜œμΈμ€ 무엇을 κ³΅λΆ€ν• κΉŒ
λ•‘λ•‘πŸ‘©πŸ»β€πŸ’»
πŸ€Greeny DevπŸ€
λ•‘λ•‘πŸ‘©πŸ»β€πŸ’»
전체
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (95) N
    • πŸ€– μ•ˆλ“œλ‘œμ΄λ“œ (46) N
      • μ½”ν‹€λ¦° (20)
      • μ•„ν‚€ν…μ²˜ (13) N
    • πŸ’‘ μ½”λ”©ν…ŒμŠ€νŠΈ (30)
    • 🌱 회고둝 (2)
    • πŸ’» CS (8)
      • 운영체제 (5)
      • 컴퓨터ꡬ쑰 (3)
    • πŸ”₯ IT ν† ν”½ (4)
    • πŸ› οΈ μ—λŸ¬λ…ΈνŠΈ (3)
    • πŸ“ λ””μžμΈνŒ¨ν„΄ (2)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • infix function
  • CS
  • μ•ˆλ“œλ‘œμ΄λ“œ 4λŒ€ μ»΄ν¬λ„ŒνŠΈ
  • scaletype
  • 운영체제
  • μ½”ν‹€λ¦°
  • onbackpressed()
  • μ•„ν‚€ν…μ²˜
  • λ””μžμΈνŒ¨ν„΄
  • ν™”λ©΄κ°„ 데이터 전달
  • Til
  • Di
  • ν›„κΈ°
  • It
  • 컴퓨터곡학
  • μ•ˆλ“œλ‘œμ΄λ“œ
  • 개발자 μ·¨μ—…
  • 99클럽
  • μ½”λ”©ν…ŒμŠ€νŠΈ μ€€λΉ„
  • μ»€μŠ€ν…€ 폰트
  • new activity
  • ν•­ν•΄ 99
  • ν—¬μŠ€μ»€λ„₯ν„°
  • μ»¬λ ‰μ…˜ ν•¨μˆ˜
  • ν•­ν•΄99
  • 클래슀
  • μŠ€ν”Œλž˜μ‹œν™”λ©΄
  • 파이썬
  • ν•¨μˆ˜μ˜ λ‹€μ–‘ν•œ κΈ°λŠ₯
  • uiλ ˆμ΄μ–΄

졜근 λŒ“κΈ€

졜근 κΈ€

hELLO Β· Designed By μ •μƒμš°.v4.2.2
λ•‘λ•‘πŸ‘©πŸ»β€πŸ’»
[μ½”ν‹€λ¦°] μ˜€λ²„λΌμ΄λ”© & 좔상화 & μΈν„°νŽ˜μ΄μŠ€
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.