반응형

/************************************************************************************************
-- Title : [PY2.7.11] 클래스 상속(Inherit)
-- Reference : itsdong.com
-- Key word : class superclass subclass 클래스 슈퍼클래스 서브클래스 상속 inherit
************************************************************************************************/

# -*- coding: utf-8 -*-

# -----------------------------------------------
# -- 상속(Inherit)
# -- 객체가 생성될 때, 여러 초기화 작업이 사용
# -----------------------------------------------

# -- 클래스
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

print('Creating {} object...'.format(self.name))

def speak(self):
print('My name is {}, {} years old.'.format(self.name, self.age))


p1 = Person('Hayden', 24)

p1.speak()

print('-' * 100)


# -- 상속
class Student(Person): # 상속은 ()안에 표기
def __init__(self, name, age, no):
Person.__init__(self, name, age) # 상속된 메소드 호출
self.no = no

print('Creating {} inherited object...'.format(self.name))

def speak(self):
Person.speak(self) # 상속된 메소드 호출

print('My student no is {}.'.format(self.no))

class Professor(Person):
def __init__(self, name, age, pay):
Person.__init__(self, name, age) # 상속된 메소드 호출
self.pay = pay

print('Creating {} professot ...'.format(self.name))

def speak(self):
Person.speak(self) # 상속된 메소드 호출

print('Professor salary is {}.'.format(self.pay))

s1 = Student('STU1', 15, 93450486)
f1 = Professor('PRO1', 45, 100000000)

member = [s1, f1]
for aa in member:
aa.speak()



반응형

+ Recent posts