final
// ν΄λμ€μ final ν€μλ
// μμλ μ μμ
class A final
{
public:
A();
virtual ~A();
virtual void Func(string InParam);
};
// Error!!
class B : public A
{
public:
B();
~B();
void Func(string InParam) override;
};
class C
{
C();
// ν¨μμ final ν€μλ
// μμλ μ μμ
virtual void Func(string InParam) final;
};
class D : public C
{
D();
// Error!!!
void Func(string InParam) override;
};
// - Aλ finalλ‘ μ μΈλμκΈ° λλ¬Έμ μμ λΆκ°
// - Cμ Func λ©€λ² ν¨μλ finalλ‘ μ μΈλμκΈ° λλ¬Έμ Dμμ overridingμ΄ λΆκ°λ₯
- λ μ΄μμ μμμ μ°¨λ¨νλ ν€μλ
- ν΄λμ€, λ©μλμ μ¬μ© κ°λ₯
- λΉκ°μ λ©μλμλ μ¬μ©ν μ μμ
- C#μ sealedμ μ μ¬
μΆμ²