ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 상속과 다형성 with pyhton
    코테/그 외 2022. 4. 18. 11:39
    728x90

    상속 

    - 하나의 클래스가 다른 클래스의 속성과 메서드를 얻는 과정을 말하며 새롭게 형성된 클래스는 자녀 클래스, 자녀 클래스가 파생된 클래스  를 부모 클래스라고 부른다.

    다형성

    - 부모 class에서 상속받은 같은 이름의 method를 overriding하여 기능을 확장하거나 변경하는 것을 의미

    - overriding: super클래스를 상속받은 서브클래스에서 super클래스의 메소드를 같은 이름, 같은 반환값, 같은 인자로 메소드 내의 로직을 새롭게 정의하는 것

    class Point:
    	def __init__(self):
        	self.x = int(input('x=?'))
            self.y = int(input('y=?'))
        def disp(self):
        	pass
            
    class Circle(Point):
    	def __init(self):
        	super().__init__()
            self.r = int(input('r=?'))
        def disp(self):
        	print('원', self.x, self.y, self.r)
    
    class Rect(Point):
    	def __init__(self):
        	super().__init__()
            self.w = int(input('w=?'))
            self.h = int(input('h=?'))
        def disp(self):
        	print('사각형', self.x, self.y ,self.w, self.h)
            
            
    def main():
    	li = list()
        while True:
        	s = input('도형종류(1.사각형 2.원 3.조회 3.종료)?')
            if s=='1':
            	li.append(Rect())
            elif s== '2':
            	li.append(Circle())
           	elif s == '3':
            	for i in li:
                	i.disp()
            elif s== '4':
            	break
            else:
            	print('잘못 입력 하셨습니다.')
        print('프로그램을 종료합니다.')
    main()

     

    class Fruit:
      def __init__(self, name, market):
        self.name = name
        self.market = market
      def disp(self):
        pass
      def sound(self):
        pass
    
    
    class Apple(Fruit):
      price = '1300'
    
      def __init(self, name, market):
        super().__init__(name, market)
    
      def disp(self):
        print("이름: "+self.name)
        print("가격: " +self.price)
        print("시장: " +self.market)
        self.quantity()
    
      def quantity(self):
        print("100개 남았습니다.")
    
    class Banana(Fruit):
      price = '1300'
      def __init(self, name, market):
        super().__init__(name, market)
        
      def disp(self):
        print("이름: "+self.name)
        print("가격: " +self.price)
        print("시장: " +self.market)
        self.quantity()
        
      def quantity(self):
        print("80개 남았습니다.")
    
    class Orange(Fruit):
      price = '1300'
      def __init(self, name, market):
        super().__init__(name, market)
        
      def disp(self):
        print("이름: "+self.name)
        print("가격: " +self.price)
        print("시장: " +self.market)
        self.quantity()
        
      def quantity(self):
        print("60개 남았습니다.")
    
    
    f1 = Apple('사과', '1번 시장')
    f2 = Banana('바나나', '2번 시장')
    f3 = Orange('오렌지', '3번 시장')
    f1.disp()
    f2.disp()
    f3.disp()
    
    
    f1 = Fruit('사과', Apple())
    f2 = Fruit('바나나', Banana())
    f3 = Fruit('오렌지', Orange())
    f1.disp()
    f2.disp()
    f3.disp()

     

     

     

    728x90

    댓글

oguuk Tistory.