博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20180726 (面向对象:接口类和抽象类 多态 封装)
阅读量:5119 次
发布时间:2019-06-13

本文共 2207 字,大约阅读时间需要 7 分钟。

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

例如:   强制制定一个规范,凡是继承我的类中必须有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()

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/lhy979/p/9373110.html

你可能感兴趣的文章
wpf combobox
查看>>
Java高阶回调,回调函数的另一种玩法
查看>>
WCF公开服务元数据方式
查看>>
2014蓝桥杯问题 C: 神奇算式
查看>>
ElasticSearch(站内搜索)
查看>>
Node.js简单介绍并实现一个简单的Web MVC框架
查看>>
Linux压缩与解压缩
查看>>
哈希(Hash)与加密(Encrypt)相关内容
查看>>
4----COM:a Generative Model for group recommendation(组推荐的一种生成模型)
查看>>
UVA 11137 - Ingenuous Cubrency
查看>>
js阻止事件冒泡的两种方法
查看>>
Java异常抛出
查看>>
CGRect知多少
查看>>
Android 开发环境安装配置手册
查看>>
Qt工程文件说明
查看>>
[SQL Server 系] T-SQL数据库的创建与修改
查看>>
WIN7下搭建CORDOVA环境
查看>>
74HC164应用
查看>>
变量声明和定义的关系
查看>>
300 多个免费网站和应用资源
查看>>