zoukankan      html  css  js  c++  java
  • 类与类之间的关系

    一.类与类之间的关系

      在世界中的事物与事物之间总会有一些练习

      在面向对象中,类与类之间也可以产生相关的关系

    1.依赖关系

      执行某个方法的时候,需要别的类来帮助你完成这个方法.这种关系最不紧密,因为随时可以更换另一个类来完成此方法

    class Person:
        def play(self, tools):
            tools.run()
            print("手不能停")
    
    
    class Computer:
    
        def run(self):
            print("电脑开机,双击dnf")
    
    
    class Phone:
    
        def run(self):
            print("打开王者荣耀")
    
    
    c = Computer()
    ph = Phone()
    p = Person()
    p.play(c)
    p.play(ph)
    

    2.关联关系

      两个类必须是互相关联的,但是在某些特殊情况下是可以更改和更换的.

      1.一对多关系

    class Boy:
    
        def __init__(self, name, girlFriend=None):
            self.girlFriend = girlFriend
    
        def chi(self):
            if self.girlFriend:
                print(f"带着女朋友{self.girlFriend.name}去吃")
            else:
                print("自己去吃吧")
    
        def watch(self):
            if self.girlFriend:
                print(f"带着女朋友{self.girlFriend.name}去看")
            else:
                print("自己去看吧")
    
    
    class Girl:
        def __init__(self, name):
            self.name = name
    
    
    b = Boy("I")
    g = Girl("beautiful girl")
    
    b.girlFriend = g  # 看好等效效果
    
    b.chi()
    
    g1 = Girl("佟丽娅")
    
    b.girlFriend = g1  # 换了一个
    b.chi()
    b.watch()
    

      2.一对多

    class School:
    
        def __init__(self, name):
            self.teach_list = []
            self.name = name
    
        def ZhaoPin(self, teach):
            self.teach_list.append(teach)
    
        def ShangKe(self):
            for t in self.teach_list:
                t.work(self.name)
    
    class Teacher:
    
        def __init__(self, name):
            self.name = name
    
        def work(self,school):
            print(f"{self.name}在{school}上课")
    
    
    ob = School("北大")
    
    t1 = Teacher("涛涛1")
    t2 = Teacher("涛涛2")
    t3 = Teacher("涛涛3")
    t4 = Teacher("涛涛4")
    
    ob.ZhaoPin(t1)
    ob.ZhaoPin(t2)
    ob.ZhaoPin(t3)
    ob.ZhaoPin(t4)
    
    ob.ShangKe() 

    3.继承关系

      父类 = 基类 = 超类       一个东西不同的名字

      子类 = 派生类

    class Base:            # 父类 = 基类 = 超类   一个东西
        def chi(self):
            print("我会吃")
    
    class Foo(Base):    # 子类  = 派生类   一个东西
        def he(self):
            print("我会喝")
    
    f = Foo()
    f.chi()
    f.he()
  • 相关阅读:
    python 并发编程 多线程 event
    python 并发编程 多线程 定时器
    python 并发编程 多线程 信号量
    linux top 查看CPU命令
    python 并发编程 多线程 GIL与多线程
    python 并发编程 多线程 死锁现象与递归锁
    python 并发编程 多线程 GIL与Lock
    python GIL全局解释器锁与互斥锁 目录
    python 并发编程 多线程 GIL全局解释器锁基本概念
    执行python程序 出现三部曲
  • 原文地址:https://www.cnblogs.com/q767498226/p/10146649.html
Copyright © 2011-2022 走看看