μ€λ²λ‘λ©(Overloding)
μ€λ²λ‘λ©μ΄λ ν¨μμ μ΄λ¦μ κ°κ³ 맀κ°λ³μλ₯Ό λ€λ₯΄κ² ν¨μΌλ‘μ¨ λ§€κ° λ³μμ λ°λΌ λ€λ₯Έ ν¨μκ° μ€νλλ κ²μ΄λ€.
int add(int a, int b) { return a + b; } // μν¨μ
float add(int a, int b) { return a + b; } // μ€λ²λ‘λ© λΆκ°λ₯
float add(int a, float b) { return a + b; } // μ€λ²λ‘λ© κ°λ₯
μ€λ²λΌμ΄λ©(Overriding)
μ€λ²λΌμ΄λ©μ΄λ λΆλͺ¨ ν΄λμ€λ‘λΆν° μμλ°μ ν¨μλ₯Ό μ¬μ μνλ κ²μ΄λ€.
- μμ κ°μ²΄μμ μ€λ²λΌμ΄λ©ν ν¨μλ νΈμΆ μ λ¨Όμ νΈμΆλλ€.
- λμΌν λ¦¬ν΄ κ°, μ΄λ¦, 맀κ°λ³μλ₯Ό κ°μ ΈμΌ νλ€.
#include <iostream>
using namespace std;
class Drink {
public:
virtual void Drinking() { cout << "Drink" << endl; }
};
class Soda : public Drink {
public:
virtual void Drinking() { cout << "Soda" << endl; }
};
class Milk : public Drink {
public:
virtual void Drinking() { cout << "Milk" << endl; }
};
int main()
{
Drink* d = new Milk();
d->Drinking();
}
// μΆλ ₯
// Milk