상속 2

[C#] 상속과 virtual, abstract, interface / 오버로딩, 오버라이딩 코드

앞의 내용에서 상속을 다뤘는데, virtual / abstract / interface와는 무슨 연관이 있을가? 본래 상속은 단일 클래스만 가능한 일이지만, 다중 상속이 가능한 키워드가 있다. 부모클래스에서 protected / public으로 선언한 변수는 자식클래스에서도 참조가 가능하지만 private으로 선언한 변수는 안된다는 것은 모두 알고 있을것이다. 그렇다면 method, 즉 함수의 경우는 어떨까? protected / public으로 선언된 메소드는 위와 동일하다. 하지만 메소드를 재정의 하는 경우는 또 다르다. virtual(가상) abstract(추상) interface virtual : 재정의가 가능하고 이는 필수가 아니다. abstract: 재정의가 가능하지만 이는 필수이다. (abs..

공부/C# 2023.03.23

[C#] 상속(Inheritance) / 오버로딩 + 오버라이딩

상속이란 특정 기능(데이터와 동작)을 제공하는 기본 클래스를 정의하고 해당 기능을 다시 선언하지 않고 받아 사용하거나 재정의 할 수 있게 파생 클래스를 정의하는 기능이다. 객체 지향 프로그래밍 언어의 주요 특징 중 하나다. (추상화, 상속, 다형성, 캡슐화) 쉽게 말해, 공통되는 함수나 변수를 가지고 있으면 이를 상속받아 비슷하게 사용하고, 확장하거나 수정하는 기능이다. 부모 클래스의 동작을 다시 사용하거나 확장 / 수정하기 위해 자식 클래스를 정의한다. 상속되는 클래스를 기본 클래스 ( 부모 클래스 ) / 상속하는 클래스를 파생 클래스 ( 자식 클래스 ) 라고 한다. *하지만 static (정적 생성자: 클래스의 정적 데이터 초기화), 생성자(클래스의 이름과 같은 메소드, 클래스의 새 인스턴스 만들 때..

공부/C# 2023.03.22
728x90