phython 기초 공부 내용 정리(상속)

홍준성·2022년 5월 30일
0

python 기초 공부

목록 보기
10/12

상속(inheritance)

  1. 기존에 사용중인 클래스의 필드 중 새롭게 만들 클래스에서 필요한 것들이 있다면 상속을 받아서 그대로 사용한다.
  2. 여러 클래스를 선언할 때 중복되는 기능들이 존재한다면 공통 기능들을 담아놓을 클래스를 선언한다.
class A:
	def __init__(self, data = 10):
    	self.data = data
        
    def printData(self):
    	print(self.data)
        
    def show(self):
    	print("부모 메소드")
        
class B:
	def __init__(self, data, data2):
    	A.__init__(self, data) // 또는 super().__init__(data)
        self.data2 = data2
        
    def printData2(self):
    	print(self.data, self.data2)

b = B(30, 20)
b.printData2()

예제

class Car:

	def __init__(self, brand, color, price):
    	self.brand = brand
        self.color = color
        self.price = price
        
    def engineStart(self):
    	print(self.brand + "열쇠로 시동 킴")
        
    def engineStop(self):
    	print(self.brand + "열쇠로 시동 끔")
        
class SuperCar(Car):
	def __init__(self, brand, color, price, mode):
    	super().__init__(brand, color, price)
        self.mode = mode
    
    #Overriding   //부모 것을 재정의했다는 것을 의미
    def engineStart(self):
    	print(self.brand+"음성으로 시동 킴")
        
    def openRoof(self):
    	print("지붕 열림")
        
    def closeRoof(self):
    	print("지붕 닫힘")
    
ferrari = SuperCar("ferrari", "red", 35000, "daily")

ferrari.engineStart()
ferrari.engineStop()
ferrari.openRoof()
ferrari.closeRoof()

###출력 값
ferrari음성으로 시동 킴
ferrari열쇠로 시동 끔
지붕 열림
지붕 닫힘
class A:
	seq = 0
    
    def __init__(self):
    	A.seq += 1
		self.num = A.seq

	def test(self):
    	self.seq = 10
        
        
obj1 = A()
obj1.test()

print(obj1.num) // 출력값 1
print(obj1.seq) // 출력값 10
// 전역변수 seq를 쓰고 싶다면 클래스를 호출해서 A.seq를 부르고
// 필드 내의 seq를 쓰고 싶다면 self로 호출해서 부른다
profile
준성이의 개발자 공부 velog

0개의 댓글