zoukankan      html  css  js  c++  java
  • 20180726 (面向对象:接口类和抽象类 多态 封装)

    一.接口类,抽象类定义:制定一个规范

    例如:   强制制定一个规范,凡是继承我的类中必须有pay方法,如果没有实例化对象的时候就会报错

    from abc import ABCMeta,abstractmethod             (抽象类,接口类)

    class Payment(metaclass=ABCMeta):
    @abstractmethod
    def pay(self): ======>抽象类(接口类) 制定一个规范
    pass
    class Alipay(Payment):
    def __init__(self,money):
    self.money = money
    def pay(self):
    print("使用支付宝支付%s" % self.money)
    class Jdpay(Payment):
    def __init__(self,money):
    self.money = money
    def pay(self):
    print("使用京东支付了%s" % self.money)
    class QQpay(Payment):
    def __init__(self,money):
    self.money = money
    def pay(self):
    print("使用QQ支付了%s" % self.money)
    def pay(obj): =======>归一化设计
    obj.pay()
    a1 = Alipay(100)
    j1 = Jdpay(200)
    q1 = QQpay(300)
    a1.pay()
    j1.pay()q1.pay()

    二.python 面向对象的三大特征之一:

    多态:python处处是多态

    python中没有多态,他有鸭子类型(python中大量存在)

    鸭子类型:看着像鸭子,他就是鸭子           (统一化规范)

    例如:   这些类都成为鸭子

    class Str:
    def index(self):
    pass
    class List:
    def index(self):
    pass
    class Tuple:
    def index(self):
    pass

    三.封装

    广义的封装:实例化一个对象,给对象空间封装一些属性

    狭义的封装:私有制   (只能自己调用,或者是某些对象可以调用)

    私有成员:私有静态变量   私有方法   私有对象属性

    例如:

      __iphone="123456"                    私有静态变量(字段)

      def __func(self):

        print(666)                             私有方法

      def __init__(self,name):

        self.__name = name            私有对象属性

    私有静态变量(字段):   只能在本类中内部访问,类的外部以及派生类都不可以访问

    例如:                    print(A._A__age)   可以访问(但是不要使用)

    class A:
    name = "slex"
    __age = 100
    def func(self):
    print(a1.__age) ======>对于私有静态字段(变量),类的内部可以访问
    print(A.__age)
    print("123")
    a1 = A()
    a1.func()
    #print(a1.__age) ======>实例化对象不能访问私有静态字段
    #print(A.__age) ======>类名不能访问私有静态字段

    私有方法:  类的内部可以访问      (类的外部,类的派生类不可以访问)

    例如:

    class Dog:
    def __eat(self):
    print("会吃饭")
    def func(self):
    self.__eat()
    print("123")
    d1 = Dog()
    d1.func()

    私有对象属性: 类的内部可以访问      (类的外部和派生类不可以访问)

    class Dog:
    def __init__(self,name): 私有对象属性
    self.__name = name
    def __eat(self): 私有方法
    print("会吃饭")
    def func(self):
    self.__eat()
    print("123")
    def xinxi(self):
    print("该狗名字叫%s" % self.__name)
    d1 = Dog("球球")
    d1.func()
    d1.xinxi()
    
    
  • 相关阅读:
    2018-2019-2 20175214 实验四《Android程序设计》实验报告
    20175214 《Java程序设计》第11周学习总结
    2018-2019-2 20175214 实验三《敏捷开发与XP实践》实验报告
    20175214 《Java程序设计》第9周学习总结
    编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
    20175214 《Java程序设计》第8周学习总结
    2018-2019-2 20175214 实验二《面向对象程序设计》实验报告
    结对编程项目—四则运算 第二周 整体总结
    事物的传播行为
    mysql数据语句
  • 原文地址:https://www.cnblogs.com/lhy979/p/9373110.html
Copyright © 2011-2022 走看看