본문 바로가기
파이썬/그외

파이썬 - 클래스 - 상속 , 출력

by artra 2023. 7. 7.
반응형
class Family:   # 클래스(부모 객체) - Family
 
    def __init__(self, name, age):
        self.name = name   # 인스턴스 변수(속성) - 이름
        self.age = age   # 인스턴스 변수(속성) - 나이
 
    def greet(self):   # 메소드(행위) - 인사하기
        print("안녕하세요.")
 
    def get_age_in_future(self, year):   # 메소드(행위) - 미래 나이 계산하기
        age_in_future = self.age + year # 현나이 + (5) 5년뒤 나이 더하기
        print(f"{self.name} {year}년 후 나이 : {age_in_future}")
 
        
class Grandparents(Family):   # Grandparents, 클래스(자식 객체) - Family
 
    def greet(self):   # 메소드(행위) - 할아버지가 인사하기
        print(f"{self.name} 할아버지({self.age}세) : 안녕하세요.")
 
    def get_age_in_future(self, year):   # 메소드(행위) - 할아버지의 미래 나이 계산하기
        super().get_age_in_future(year) # Family 클래스의 메소드 호출
 
        
class Parents(Grandparents):   # Parents, 클래스(자식 객체) - Grandparents
 
    def greet(self):   # 메소드(행위) - 아버지가 인사하기
        print(f"{self.name} 아버지({self.age}세) : 안녕하세요.")
 
    def get_age_in_future(self, year):   # 메소드(행위) - 아버지의 미래 나이 계산하기
        super().get_age_in_future(year) # Grandparents 클래스의 메소드 호출
 
        
class Children(Parents):   # Children, 클래스(자식 객체) - Parents
 
    def greet(self):   # 메소드(행위) - 손자가 인사하기
        print(f"{self.name} 손자({self.age}세) : 안녕하세요.")
 
    def get_age_in_future(self, year):   # 메소드(행위) - 손자의 미래 나이 계산하기
        super().get_age_in_future(year) # Parents 클래스의 메소드 호출
        
 
# 인스턴스 생성
grandparents = Grandparents("할아버지"75)   # 할아버지 인스턴스 생성
parents = Parents("아버지"50)   # 아버지 인스턴스 생성
children = Children("손자"25)   # 손자 인스턴스 생성
 
# 안녕하세요 호출
grandparents.greet()   # 할아버지 메소드 호출
parents.greet()   # 아버지 메소드 호출
children.greet()   # 손자 메소드 호출
 
# 출력
# 할아버지 할아버지(75세) : 안녕하세요.
# 아버지 아버지(50세) : 안녕하세요.
# 손자 손자(25세) : 안녕하세요.
 
# 5년 뒤 나이 출력하기
print("5년 뒤...")
grandparents.get_age_in_future(5)   # 할아버지 메소드 호출
parents.get_age_in_future(5)   # 아버지 메소드 호출
children.get_age_in_future(5)   # 손자 메소드 호출
 
# 출력
# 5년 뒤...
# 할아버지 5년 후 나이 : 80
# 아버지 5년 후 나이 : 55
# 손자 5년 후 나이 : 30
cs
반응형

댓글