面向对象思想

面向对象三大特性:封装、继承、多态

1、封装:核心思想是分,划分类人类车类。函数是对语句封装,类是对函数和变量的封装
2、继承:封装之后紧跟着继承,定义:将相关类共性进行抽象,统一概念,隔离变化
3、多态:父类的同一种动作或者行为,在不同的子类上有不同实现,彰显子类个性。多种形态。

三个步骤:
(1)调用父类方法,通俗讲是先用
(2)子类重写,通俗讲父类后定义方法
(3)创建子类
目的:
(1)在继承的基础上,体现类型的个性化(一个行为有不同的实行)
(2)增强程序扩展性,体现开闭原则。

案例:

需求:老张开车去东北
变化:面向对象很好解决需求变化,关注变化,拥抱变化
比如刚开始只有汽车,后面增加飞机、火车
封装:划分类 人类 车类
继承:隔离 人类 交通工具
多态:调用父类,子类产生多种形态

# 需求张三开车去东北
# 人和交通工具
# 人有名字 和 去的方法
# 中间是交工工具
# 最后一个类是具体交通工具比如汽车、飞机

class Proson:
    def __init__(self, name=None):
        self.name = name

    def go_to(self, posttion, vehicle):
        print(self.name + "使用" + vehicle.name + "去" + posttion)
        vehicle.transport()


class Vehicle:
    """
    交通工具没有具体代码,作用隔离人与交通工具
    """
    def transport(self):
        pass


class Car(Vehicle):
    def __init__(self, name=None):
        self.name = name

    # 重写父类transport方法,实现多态
    def transport(self):
        print("汽车在行驶....")


class Feijing(Vehicle):
    def __init__(self, name=None):
        self.name = name

    def transport(self):
        print("飞机在飞行....")


p1 = Proson("张三")
c1 = Car("汽车")
p1.go_to("东北", c1)

f1 = Feijing("飞机")
p1.go_to("北极", f1)

-------------输出---------------
张三使用汽车去东北
汽车在行驶....
张三使用飞机去北极
飞机在飞行....

设计原则

(1)开闭原则

  1. 对扩展开放,对修改关闭

  2. 增加新功能,不改变原有代码

(2)类的单一职责

​1. 一个类有且只有一个改变他的原则。

posted on 2020-12-26 23:33  xiao小胡子  阅读(114)  评论(0)    收藏  举报