μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- μΌμ±swμν
- λμ νλ‘κ·Έλλ°
- μ½λ©ν μ€νΈ
- νμ΄μ¬
- Flutter
- μ½λνΈλ¦¬
- μ΄μ§νμ
- μλ°μ€ν¬λ¦½νΈ
- μλ£κ΅¬μ‘°
- sort
- DP
- DART
- programmers
- BAEKJOON
- λ¬Έμμ΄ νμ±
- μ°μ ¨μμ
- Algorithm
- μΉ΄μΉ΄μ€
- JS
- ꡬν
- JavaScript
- c#
- λͺ»κ·Έλ¦¬μ§λ§
- κ·Έλν νμ
- Java
- μκ³ λ¦¬μ¦
- λ°±μ€
- νλ‘κ·Έλλ¨Έμ€
- μ€ν°λ
- BFS
Archives
- Today
- Total
Algo μ°μ
08. baseν€μλμ sealedνμ μ λ³Έλ¬Έ
namespace inheritEx2
{
// κΈ°λ°(λΆλͺ¨) ν΄λμ€μ 맀κ°λ³μκ° μλ μμ±μμκ²
// νμ(μμ) ν΄λμ€μ μμ±μμμ μΈμλ₯Ό μ λ¬νλ λ°©λ²
/*
C# μμλ λΆλͺ¨ ν΄λμ€ μμ±μ μ€μμ μ¬μ©μ μ§μ μμ±μ(맀κ°λ³μκ° μλ μμ±μ)κ°
μ‘΄μ¬ ν λ λΆλͺ¨ ν΄λμ€ μμ±μμ 맀κ°λ³μ (Ex. 맀κ°λ³μ = p) λ₯Ό μμν΄λμ€μμ μ λ¬νμ¬ νμ©ν μ μλ€.
μ¦, μμ ν΄λμ€μ μΈμ€ν΄μ€(λΆλͺ¨ν΄λμ€λ₯Ό μμλ°κ³ μλκ²½μ°)λ₯Ό μμ±ν λ λΆλͺ¨ν΄λμ€μ 맀κ°λ³μλ₯Ό μ λ¬νμ¬ μ΄κΈ°ν ν μ μμ.
cf) Java? PythonμΈκ°? κ±°κΈ°μ λ΄€λ super() κ°μ κ²μΈλ―ν¨.
*/
/* sealed */ class Parent
// μ΄μ κ°μ΄ `sealed` ν€μλλ₯Ό μ΄μ©νλ©΄
// μ»΄νμΌλ¬μμ μλ¬λ₯Ό λ°μμμΌ μμμ λΆκ°λ₯νκ² νλ€.
// μ΄λ κ² sealedλ₯Ό ν΄λμ€μ μ΄μ©νλ©΄ λ΄μΈνλ€ λΌκ³ νλ€.
{
protected string name;
public Parent(string name)
{
this.name = name;
Console.WriteLine($"{this.name}.Parent()");
}
public void parent_method()
{
Console.WriteLine("parent method");
}
}
class Child : Parent
{
public Child(string name) : base(name)
// baseλ λΆλͺ¨ ν΄λμ€μ μ κ·Όν λ μ¬μ©
{ // μ΄λ κ² μ μΈνλ©΄ Child(name)μ 맀κ°λ³μ nameμ λΆλͺ¨μ μμ±μλ‘ μ λ¬νλ©° νΈμΆνκ²
Console.WriteLine($"{this.name}.Child()");
}
// base ν€μλλ κΈ°λ° ν΄λμ€λ₯Ό κ°λ¦¬ν€λ ν€μλμ΄λ€.
//λ°λΌμ, κΈ°λ°ν΄λμ€μ λ©€λ²λ₯Ό μ κ·Όν λ μ¬μ©ν μ μλ€.
public void child_method()
{
Console.WriteLine("child method");
base.parent_method();
//base ν€μλλ₯Ό μ΄μ©ν΄ λΆλͺ¨ν΄λμ€μ λ©μλλ νΈμΆν μ μλ€.
}
}
class Program
{
static void Main(string[] args)
{
Child child = new Child("μμ΄");
child.child_method();
}
}
}
Output
μμ΄.Parent()
μμ΄.Child()
child method
parent method
base
: κΈ°λ°(λΆλͺ¨)ν΄λμ€λ₯Ό κ°λ¦¬ν€λ ν€μλμ΄λ€.base
ν€μλλ₯Ό ν΅ν΄ κΈ°λ°ν΄λμ€μ λ©€λ²(νλ νΉμ λ©μλ)λ₯Ό μ κ·Όν λ μ¬μ©ν μ μλ€.μ½λ μ°Έκ³ ν κ²!
sealed
: κΈ°λ°(λΆλͺ¨)ν΄λμ€μ μ¬μ©νλ ν€μλλ‘ μ΄λ₯Ό ν΅ν΄ μ»΄νμΌλ¬μμ μλ¬λ₯Ό λ°μμμΌ ν΄λμ€μ μμμ λΆκ°λ₯νκ² νλ€.sealed
ν€μλλ₯Ό ν΄λμ€μ μ΄μ©νμ¬λ΄μΈνλ€
λΌκ³ μΌμ»«λλ€.
κΈ°λ°(λΆλͺ¨)ν΄λμ€
μ 맀κ°λ³μκ° μλ μμ±μμκ²νμ(μμ)ν΄λμ€
μ μμ±μμμ μΈμλ₯Ό μ λ¬νλ λ°©μμbase
μsealed
λ₯Ό μ¬μ©νλ€.
C#
μμλ λΆλͺ¨ ν΄λμ€ μμ±μ μ€μμ μ¬μ©μ μ§μ μμ±μ(맀κ°λ³μκ° μλ μμ±μ)κ° μ‘΄μ¬ ν λ λΆλͺ¨ ν΄λμ€ μμ±μμ 맀κ°λ³μ (Ex. 맀κ°λ³μ = p) λ₯Ό μμν΄λμ€μμ μ λ¬νμ¬ νμ©ν μ μλ€. μ¦, μμ ν΄λμ€μ μΈμ€ν΄μ€(λΆλͺ¨ν΄λμ€λ₯Ό μμλ°κ³ μλκ²½μ°)λ₯Ό μμ±ν λ λΆλͺ¨ν΄λμ€μ 맀κ°λ³μλ₯Ό μ λ¬νμ¬ μ΄κΈ°ν ν μ μμ. cf) Java? PythonμΈκ°? κ±°κΈ°μ λ΄€λsuper()
κ°μ κ² μΈλ―ν¨.
'π» Programming Language > C#' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
10. is μ°μ°μμ as μ°μ°μ (0) | 2022.04.06 |
---|---|
09. μμκ΄κ³μ ν΄λμ€ νλ³ν (0) | 2022.04.06 |
07. μμ (0) | 2022.04.06 |
06. μ κ·Όμ νμ(Access Modifier) (0) | 2022.04.06 |
05. this, this() μμ±μ (0) | 2022.04.06 |