안녕하세요 아임코딩입니다.
이번에는 C#에서 지원하는 상속에 대해서 알아보겠습니다.
유튜브 링크
상속이란?
상속은 객체지향 프로그래밍 언어에서 중요한 개념 중 하나로, 기존의 클래스를 재사용하여 새로운 클래스를 만들 수 있는 기능입니다.
쉽게 말해서 어떤 클래스를 그대로 복사해서 다른 클래스에 붙여넣는다고 생각하면 쉽습니다.
상속을 하면 부모 클래스의 데이터와 메서드를 그대로 자식 클래스에서 사용할 수 있습니다.
C#에서의 상속
C#에서 상속은 클래스를 선언할 때 : 기호를 이용해서 상속을 할 수 있습니다.
[접근제한자] class [자식 클래스] : [부모 클래스]
이런 식으로 상속을 받습니다.
부모 클래스
상속할 부모 클래스를 먼저 만들어보겠습니다.
public class Person
{
private string name;
public string getName() //name 값을 반환하는 메서드
{
return name;
}
public void setName(string name) //name 값을 설정하는 메서드
{
this.name = name;
}
public void printName()
{
Console.WriteLine("사람의 이름은 : " + name);
}
}
부모 클래스의 이름은 Person 이고
데이터는 string name을 가지고 있고
메서드는
getName()
setName()
printName()
을 가지고 있습니다.
자식 클래스
public class Student : Person
{
private int stuId;
public void setStuId(int stuId)
{
this.stuId = stuId;
}
public int getStuId()
{
return stuId;
}
public void printStuId()
{
Console.WriteLine("학번 : " + stuId);
}
}
Person 클래스를 정의하고
Student 클래스에서 Person 클래스를 상속받는 C# 코드입니다.
상속을 하면 Student 클래스에서 Person 클래스가 가진 데이터와 메서드를 그대로 가집니다.
상속받은 자식 클래스는 부모 클래스에서 상속받은 것 말고도 자신만이 가지는 데이터와 메서드를 가질 수 있습니다.
Student 클래스의 객체를 생성하고 부모 클래스에서 구현한 메서드와 자식 클래스에서 구현한 메서드 모두에 접근해보겠습니다.
프로그램 전체 코드
using System;
namespace Tistory
{
internal class Program
{
public class Person
{
private string name;
public string getName() //name 값을 반환하는 메서드
{
return name;
}
public void setName(string name) //name 값을 설정하는 메서드
{
this.name = name;
}
public void printName()
{
Console.WriteLine("사람의 이름은 : " + name);
}
}
public class Student : Person
{
private int stuId;
public void setStuId(int stuId)
{
this.stuId = stuId;
}
public int getStuId()
{
return stuId;
}
public void printStuId()
{
Console.WriteLine("학번 : " + stuId);
}
}
static void Main(string[] args)
{
Student jerry = new Student();
jerry.setName("jerry"); //부모 클래스의 메서드 호출
jerry.printName(); //부모 클래스의 메서드 호출
jerry.setStuId(17298401); //자식 클래스의 메서드 호출
jerry.printStuId(); //자식 클래서의 메서드 호출
}
}
}
Main 함수에서는 Student 클래스의 객체 jerry를 만듭니다.
jerry 객체를 이용하여 부모에서 상속받은 메서드인
setName("jerry");
printName()
을 호출합니다.
Student 클래스가 가진 메서드인
setStuId(17298401);
printStuId();
를 호출합니다.
결과는 화면에 의도한 대로 잘 출력이 되는 것을 확인할 수 있습니다.
이상으로 C#에서 구현할 수 있는 상속의 가장 기본적인 형태를 알아봤습니다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 다형성 (메서드 오버라이딩) method overriding (0) | 2023.05.05 |
---|---|
[C#] 다형성 (메서드 오버로딩) method overloading (0) | 2023.05.05 |
[C#] 캡슐화 (0) | 2023.05.05 |
[C#] 객체지향 프로그래밍 언어 특징 (0) | 2023.05.05 |
[C#] 메서드 (0) | 2023.05.05 |