[python](4)클래스의 상속 - 클래스 상속, 메서드 오버라이딩

Jihwan Jung·2022년 7월 10일
1

🎺파이썬

목록 보기
5/5
post-thumbnail

💡오늘 배울 내용


'물려받다'는 뜻의 상속은 클래스에서 같은 의미로 쓰이는 개념입니다.
클래스 상속
메서드 오버라이딩

🔎클래스 상속


어떤 클래스를 만들때, 다른 클래스의 기능을 물려받을 수 있게 만들 수 있습니다. 즉, 클래스 A의 기능을 상속받은 클래스 A'를 만들 수 있는 것입니다.

상속(Inheritance) : 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것. 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나.

class 클래스 이름(상속할 클래스 이름)

클래스 상속은 매우 간단하게 할 수 있습니다. a클래스를 만들때 A클래스를 상속받아 만들려면 class a(A)처럼 적으면 됩니다.

클래스를 상속받아 만든 클래스 a는 A의 기능을 모두 이용할 수 있습니다.

class Calculator: #클래스 구현
	def __init__(self, one, two):
    	self.one = one
        self.two = two
        
	def twonum(self, one, two) #메서드의 매개변수 self, one, two
    	self.one = one #매서드의 수행문
        self.two = two #매서드의 수행문
        
    def plus(self): #메서드의 매개변수 self
    	result = self.one + self.two
        return result
        
    def minus(self): #메서드의 매개변수 self
 		result = self.one - self.two
        return result
        
    def mply(self): #메서드의 매개변수 self
 		result = self.one * self.two
        return result
        
    def dvid(self): #메서드의 매개변수 self
 		result = self.one / self.two
        return result
class NewCal(Calculator):
	pass

다음은 클래스 Calculator을 상속받아 만든 클래스 NewCal입니다.

cal1 = NewCal(5, 1)
print(cal1.plus(), cal1.minus(), cal1.mply(), cal1.dvid())

>>> 6 4 5 5

상속받아 만든 클래스가 상속해준 클래스의 기능을 모두 쓸 수 있음을 확인 할 수 있습니다.
물론, 메소드를 추가로 더 정의하여 사용할 수도 있습니다.

🔎메서드 오버라이딩


오버라이딩(Overriding)은 덮어쓰기를 말합니다. 즉, 메서드 오버라이딩이란 상속해준 클래스에 있는 메서드와 동일한 이름의 메서드를 상속 받은 클래스에서 재사용하여 사용하는 것을 말합니다. 말이 어렵나요? 예제를 통해 살펴봅시다.

class hello:
	def hel(self):
    	print("hello!")
        
class bye(hello):
	def hel(self):
    	print("bye!")

hello클래스의 hel메서드는 hello!를 출력하는 메서드입니다. bye클래스는 hello클래스를 상속받았는데요. hello클래스의 hel메서드를 bye!를 출력하는 메서드로 바꾸고 싶습니다. 이러한 경우 메서드를 다른 기능으로 재정의 해주었는데요.

이렇게 메서드를 오버라이딩하면 부모 클래스의 메서드 대신 오버라이딩한 메서드가 호출됩니다.

profile
22.10月~24.07月 공군 암호병 복무중/ 사회 과학과 딥 러닝에 관심이 있는 학부생(CS&E)입니다. 기술과 사회에 대한 이해를 바탕으로, 비즈니스 감각과 기술적 역량을 함께 갖춘 인공지능 프로그래머•데이터 과학자로 성장하고 싶습니다.

0개의 댓글