일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- http
- @ Builder
- 메소드 정의
- 타입 변수 표기법
- Database
- JDBC
- DROP
- c#상속
- final
- static을 왜사용할까?
- select
- MariaDB
- request
- C#
- unity 레이아웃
- spring
- java
- 평면좌표상에서 두점 거리 구하기
- response
- db
- static
- 타입이 서로 다른 두 데이터 제네릭
- ForignKey
- 메소드 지정자
- Create
- unity 오브젝트
- 요청
- WriteLine
- unity 간단 설정
- 데이터베이스
- Today
- Total
이론을 싫어!
[C#] 클래스 상속 본문
클래스 상속? (IS - A 관계)
- 부모 클래스 : base, parent, 상위, super
- 자식 클래스 : derived, child, 파생, sub
클래스의 상속에서 쓰는 용어이다. 보통 부모클래스와 자식 클래스 라고 하지만
상위클래스 또는 super 클래스 또한 부모 클래스와 같은 말이기 때문에 용어를 정리 해봤다.
또한 자식클래스도 child클래스, 파생 클래스 등등 써도 자식 클래스와 같은 의미를 가졌다.
여기서 클래스 상속이 왜 필요하냐 ? 라고 생각이 들면
많은 장점이 있겠지만 개인적으로는 클래스의 재사용이라고 생각한다.
예를 들어보자
자동차의 종류중에서 대표적으로 SUV, 소형, 중형의 자동차가 있다고 가정을 해보자
SUV,소형,중형의 마력이라든지 각각의 차량의 성능, 기능들은 다르겠지만 모두 자동차가 되기 위한 조건은 모두 가졌다.
이러한 관계를 가진것을 상속이라고 한다.
위의 화살표를 보면 가리키고 있는 곳이 부모클래스를 뜻한다.
즉, 위의 사진을 보면 부모클래스는 자동차가 될것이고, 자식클래스는 SUV,소형,중형이 될것이다.
이것도 헷갈리거나 이해를 못할수 있다.
실습(코드)를 보면 좀 더 이해 될것이다.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
using System;
namespace MyApp // Note: actual namespace depends on the project name.
{
class Car. // 부모클래스
{
public int speed; // 속도
public string kg; // 무게
public int number_people; //인원 수
}
class Suv : Car // 자식 클래스
{
public void Print()
{
Console.WriteLine("SUV의 속도 : {0} , 무게 : {1}, 인원 수 {2}명 입니다.",speed,kg,number_people);
}
}
class Mini_car : Car // 자식 클래스
{
public void Print()
{
Console.WriteLine("소형의 속도 : {0} , 무게 : {1}, 인원 수 {2}명 입니다.",speed,kg,number_people);
}
}
class Medium_car : Car // 자식 클래스
{
public void Print()
{
Console.WriteLine("중형의 속도 : {0} , 무게 : {1}, 인원 수 {2}명 입니다.",speed,kg,number_people);
}
}
class Program
{
static void Main(string[] args)
{
Suv suv = new Suv();
suv.speed = 100;
suv.kg = "2톤";
suv.number_people = 6;
suv.Print();
Mini_car miniCar = new Mini_car();
miniCar.speed = 60;
miniCar.kg = "1톤";
miniCar.number_people = 4;
miniCar.Print();
Medium_car mediumCar = new Medium_car();
mediumCar.speed = 80;
mediumCar.kg = "1.5톤";
mediumCar.number_people = 4;
mediumCar.Print();
}
}
}
|
cs |
위의 코드를 보면 자식 클래스에서 : 를 볼수 있다. 이것은 상속을 받겠다는 뜻이다.
아까 위해서 상속이 필요한 이유에 대해서 설명을 했었다.
코드의 재사용
위의 처럼 코드 뿐만이 아니라 관련된 변수라든지 메소드(함수)를 넣어서 상속을 받게된다면 굳이 생성할 필요없이 부모 클래스꺼를 사용할수 있다는 것이다.
'C#' 카테고리의 다른 글
[C#]this 키워드와 static 키워드 (0) | 2023.05.02 |
---|---|
[C#] 생성자와 소멸자 (0) | 2023.05.02 |
[c#] 클래스 개념 꽉~ 잡아보자 (0) | 2023.05.02 |
[C#]c#언어를 프로그램으로 코드 익히기(간단한 성적 프로그램 만들기) (0) | 2023.04.10 |