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()
  • 相关阅读:
    Windows--查看端口占用
    设计模式--策略模式--简记
    Java--运算符的优先级表
    乐观锁和悲观锁--简记
    设计模式--适配器模式--简记
    设计模式--建造者模式--简记
    设计模式--抽象工厂模式--简记
    设计模式--工厂方法模式--简记
    寒假学习进度
    程序员修炼之道--从小工到专家阅读笔记03
  • 原文地址:https://www.cnblogs.com/q767498226/p/10146649.html
Copyright © 2011-2022 走看看