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()
    
    
  • 相关阅读:
    根据IP获取省市 .
    支付宝接口使用步骤及总结
    最新调用优酷视频 免前置广告的方法
    SQL新增数据取表主键最新值
    JS获取地址栏参数
    图片(img标签)的onerror事件
    prototype.js的Ajax对IE8兼容问题解决方案
    基于.net技术的 Rss 订阅开发
    JS获取Dropdownlist选中值
    阿里云tomcat启动慢
  • 原文地址:https://www.cnblogs.com/lhy979/p/9373110.html
Copyright © 2011-2022 走看看