class TurboCar(NormalCar):
: 상속할 부모클래스의 이름을 괄호 안에 넣어주면 된다!
📋실습 : 덧셈, 뺄셈 기능이 있는 클래스를 만들고, 이를 상속하는 클래스를 만들어서
곱셈과 나눗셈 기능을 추가해 보자
self.num1과 self.num2 속성에 매개변수 n1, n2로 초기화해서 10, 20을 넣는다.
매개변수 없이 애초에 self.num1 = 10, self.num2 = 20 처럼 고정값을 넣어도 됨.
여튼 init() 함수가 속성의 값을 초기화하는 역할을 한다는 의미.
cls = C_Class(10, 20) 했을 때,
C_Class는 호출되지만 P_Class는 속성이 초기화가 안돼서 호출이 안됨.
상위 클래스인 P_Class의 속성(pNum1, pNum2)을 초기화시켜주는 작업이 필요하다.
📋실습 : 중간고사 클래스와 기말고사 클래스를 상속관계로 만들고 각각의 점수를 초기화하자.
또한 총점 및 평균을 반환하는 기능도 만들어보자⏳⏳
: 2개 이상의 클래스를 상속한다.
Car에 Car01, Car02, Car03을 모두 상속함.
(그 안의 함수(기능)을 사용해보면 상속되었는지 확인 가능)
📋실습 : BasicCalculator와 DeveloperCalculator 클래스를 다음과 같이 만들고
이들 클래스를 상속해서 Calculator 클래스를 만들고 사용해 보자
: 하위 클래스에서 상위 클래스의 메서드를 재정의(override)한다
: 클래스는 상속, 메서드는 오버라이딩
: 총알발사가 아니라 레이저발사로 바뀜! (fire 메소드를 재정의)
📋실습 : 삼각형 넓이를 계산하는 클래스를 만들고 이를 상속하는 클래스에서 getArea()를
오버라이딩 해서 출력 결과가 다음과 같을 수 있도록 클래스를 만들어보자
super().__init( , )을 함으로써 받은 변수를 상위클래스로 올려줌
: 상위 클래스에서 하위 클래스에 메서드 구현을 강요한다.
선언만 한(오버라이딩도 아님, 아예 실행부가 없음) 메소드를, 하위 클래스에서 구현.
구현하지 않으면 에러가 남. 그래서 구현을 '강요'.
from abc import ABCMeta #abc 패키지에서 모듈을 가져와야함
from abc import abstractmethod
class 상위클래스(metaclass=ABCMeta): #metaclass=ABCMeta 넣기
@abstractedmethod #데코레이션 붙이기
📋실습 : 계산기 추상 클래스를 만들고 이를 이용해서 새로운 계산기 클래스를 만들어 보자.
추상 클래스에는 덧셈, 뺄셈, 곱셈, 나눗셈 기능이 선언되어 있어야 한다.
.
.
.
🔥제로베이스 데이터 사이언스 취업스쿨 13기🔥