Develop

Object-Oriented Programming ) Overroading,Override , Extend ?

proggg 2020. 4. 9. 14:37

Android κ°œλ°œμ„ ν•˜λ©΄μ„œ κΈ°λŠ₯적으둜 무슨 μ˜λ―ΈμΈμ§€ λͺ¨λ₯΄κ³  μ‚¬μš©ν–ˆλ˜ κ°œλ…λ“€μ΄ μžˆλ‹€.

객체지ν–₯ν”„λ‘œκ·Έλž˜λ°μ„ κ³΅λΆ€ν•˜λ©΄μ„œ κ·Έ 의미λ₯Ό μ•Œμ•„λ³΄μ•˜λ‹€.

 

0. Extends

1. Overroading ?

 

μ˜€λ²„λ‘œλ”©μ€ ν•¨μˆ˜μ˜ 이름이 κ°™μ§€λ§Œ κ·Έ μΈμžκ°€ 달라 κ΅¬λΆ„λ˜λŠ” ν•¨μˆ˜λ₯Ό μ˜λ―Έν•œλ‹€.

κ°œλ°œμžμ—κ²Œ ν•¨μˆ˜ μ‚¬μš©μ˜ μš©μ΄ν•¨μ„ μ£ΌκΈ° μœ„ν•΄μ„œ μ‘΄μž¬ν•˜λŠ” κΈ°λŠ₯이닀.

 

쑰건 : ν•¨μˆ˜μ΄λ¦„μ€ κ°™μ§€λ§Œ μΈμžκ°€ 달라야 ν•œλ‹€. λ°˜ν™˜ν˜•μ€ 달라도 λœλ‹€.

 

μ˜ˆμ‹œλ₯Ό λ“€μ–΄λ³΄μž.

setComplex 의 경우 void λ°˜ν™˜ν˜•μ΄μ§€λ§Œ 인자의 μžλ£Œν˜•μ΄ λ‹€λ₯΄λ‹€.

 

μœ„μ˜ 경우 setComplex ν•¨μˆ˜λŠ” μ˜€λ²„λ‘œλ”© ν•¨μˆ˜μ΄λ‹€.

κ°œλ°œμžλŠ” float 으둜 인자λ₯Ό λ„˜κΈ°λ“  int 둜 인자λ₯Ό λ„˜κΈ°λ“  상관이 μ—†λ‹€ 이 말.

 

2. Overriding ?

Overriding μ—μ„œλŠ” μƒμ†μ˜ κ°œλ…μ΄ λ“€μ–΄κ°„λ‹€.

상속 된 Class λ₯Ό λ°”κΎΈλŠ” 것이닀.

c++ μ—μ„œλŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

상속 된 λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 것이닀.

 

class Complex {

''''''

}

 

μœ„μ˜ 캑쳐와 λ§ˆμ°¬κ°€μ§€μ˜ ν΄λž˜μŠ€κ°€ μžˆλ‹€κ³  μƒκ°ν•΄λ³΄μž.

 

μƒˆλ‘œμš΄ ν΄λž˜μŠ€λŠ” Complex λ₯Ό 상속 받을 것이닀.

 

class Something extends Complex{

       @Override // μ˜€λ²„λΌμ΄λ“œ ν–ˆλ‹€λŠ” ν‘œμ‹œμΈλ° 없어도 상관없닀.

       void showComplex(){ //reverse

             cout << Complex :: image << " + " << Complex :: real << " i " <<endl;

       }

}

 

μ›λž˜ Complex μ—μ„œ μ‚¬μš© λ˜λŠ” showComplex λŠ” real + image i λ₯Ό 좜λ ₯ν•˜μ§€λ§Œ

μ˜€λ²„λΌμ΄λ”©μ„ ν•΄μ„œ image + real i λ₯Ό 좜λ ₯ν•˜κ²Œ λœλ‹€.