[사전스터디-Python] 클래스, 상속, 추상클래스

문성호·2020년 8월 3일
  • 클래스는 객체지향 프로그래밍을 위해 고안된 개념.
    어떤 특성이나 개념과 관련한 데이터, 알고리즘을 모듈화한 것 정도로 표현할 수 있다.
  • 사람을 관리하는 프로그램을 짜고 싶다면 나이, 인적사항 등에 대한 데이터와 그 데이터를 변경하고 저장하는 메서드를 함께 모듈화할 수 있게 만들어주는 것이 Class다.

1. 클래스 기본 사용법

class Person :
  def __init__(self, name=None, age = 19):
    self.name = name
    self.age = age

  def setInfo(self, name=None, age = 19):
    self.name = name
    self.age = age


  def printMessage(self):
    print("이름 : ", self.name, "\n")
    print("나이 : ", self.age, "\n")
  • init 함수가 생성자 역할. 초기화시킨다.
  • self는 C++이나 JAVA에서의 this 역할을 한다.
    클래스 자기 자신 내부에 있는 데이터나 함수를 호출할 때 사용.

2. 클래스 상속

class Person:
    def greeting(self):
        pass
 
class Student(Person):
    def greeting(self):       # 메서드 오버라이딩
        super().greeting()    # super()로 기반 클래스의 메서드 호출
 
james = Student()
james.greeting()     # Student의 greeting 메서드가 호출 됨
  • 상속은 기존의 클래스에 있는 개념에서 가지고 있는 속성이나 기능들을, 그대로 재사용하면서 더 추가해야 하는 클래스를 만들 때 사용한다. (학생 관리 프로그램은 사람 관리 프로그램을 모두 필요로 하므로 그대로 가져올 수 있다.)

  • 요약하면, 상위개념을 포함하는 하위개념을 구현하고자 할 때 상속을 쓴다.

  • 상속을 받는 클래스(자식클래스)는 상속할 때 인자에 상위클래스(부모클래스)를 받는다. (class Student(Person))

  • Method overriding이란, 부모(상위)클래스의 함수를 재사용하거나 속성을 추가하는 것.

  • 부모 클래스의 함수를 호출하거나, 생성자를 초기화하려면 super()를 쓰면 된다.

profile
오늘을 모아 내일을

0개의 댓글