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 ๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค.