#   面向对象的三大特性:封装,继承,多态

#   继承的影响:资源的继承,资源的使用,资源的覆盖,资源的累加

#   资源的继承,在Python中的继承是指能使用父类的资源,而不是说在子类也复制一份父类代码到子类中
class Animate:
a = 1 # 公有的资源
_b = 2 # 受保护的资源
__c = 3 # 私有的资源 def t1(self):
print("t1") def _t2(self):
print("t2") def __t3(self):
print("t3") # 内置方法
def __init__(self):
print("init , Animate") class Person(Animate):
def test(self):
print(self.a)
print(self._b)
# print(self.__c) #访问父类私有的资源会有错误
self.t1()
self._t2()
# self.__t3() #访问父类私有的资源会有错误 p = Person()
print(p.test()) Animate.a = 100 # 设置个类属性值,下面看a的值是否有变化,如果是变化的,代表只是有Animate的使用权
p.test() # 资源的使用:(继承的形态:单继承,无重叠的多继承,有重叠的多继承)
print(Person.mro()) # --------------------- 多态 (python 没有真正意思上的多态,也不需要多态 -------------------------------
class Animal():
def speaker(self):
pass class Dog(Animal):
def speaker(self):
print("wangwang") class Cat(Animal):
def speaker(self):
print("miaomiao") def test(obj):
obj.speaker() d = Dog()
c = Cat() test(d)
test(c) # --------------------- 抽象类 和 抽象方法 --------------------------
import abc
class Animal(object, metaclass=abc.ABCMeta):
@abc.abstractmethod
def speaker(self):
pass class Dog(Animal):
def speaker(self):
print("wangwang")
pass class Cat(Animal):
def speaker(self):
print("miaomiao") def test(obj):
obj.speaker() d = Dog()

最新文章

  1. 【Knockout.js 学习体验之旅】(2)花式捆绑
  2. 【转】iOS,搜索标签布局
  3. ArcEngine 岛状多边形内部环的获取
  4. springMVC之servlet-config.xml配置
  5. Android View中的控件和监听方法...
  6. 读书笔记——网络编程与开发技术(3)基于TCP/IP协议的网络编程相关知识
  7. 在matlab中实现遥感影像和shp文件的结合显示
  8. Android屏幕适配原理
  9. 【转】Android 全屏方案(隐藏NavigationBar)
  10. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
  11. 「APIO2017」商旅
  12. UltralEdit 替换回车换行符
  13. oracle rename数据文件的两种方法
  14. nopcommerce 常用属性验证
  15. HDU - 5651 xiaoxin juju needs help 逆元模板
  16. Docker中执行Shell出现乱码
  17. 我的octopress配置
  18. python中的MRO和C3算法
  19. js和jQuery获取各种屏幕或文档的高度和宽度
  20. docker离线安装 启动报错Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

热门文章

  1. Response响应对象
  2. SQL Server快捷方式丢了怎么启动
  3. flex组合流动布局实例---利用css的order属性改变盒子排列顺序
  4. js实现查询关键词,使其高亮
  5. “CMake”这个名字是“cross platform make”
  6. IO流入门-第十章-DataInputStream_DataOutputStream
  7. 理解Python的双下划线命名
  8. 《深入理解Linux网络技术内幕》阅读笔记 --- 邻居子系统
  9. Touch事件分发机制
  10. R中的data.table 快速上手入门