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

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

#   资源的继承,在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()

Python 面向对象的三大特性:封装,继承,多态的更多相关文章

  1. Python - 面向对象编程 - 三大特性之继承

    继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...

  2. Java三大特性(封装,继承,多态)

    Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...

  3. C++三大特性 封装 继承 多态

    C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...

  4. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  5. Python面向对象的三大特性之继承和组合

    继承和组合 一.组合 组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合 也就是说:一个类的属性是另一个类的对象,就是组合 例子: 圆环是由两个圆组成的,圆环的面积 ...

  6. python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试

    一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...

  7. Python 面向对象的三大特性

    面向对象的三大特性:继承,封装,多态 什么时候用封装: 同一种功能的时候, 譬如:把一部分数据或方法,封装到同一个类的中 PS:在构造方法中,原始数据中....

  8. Java学习笔记二十一:Java面向对象的三大特性之继承

    Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...

  9. OOP三大核心封装继承多态

    OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...

随机推荐

  1. Android网络框架-Volley实践 使用Volley打造自己定义ListView

    这篇文章翻译自Ravi Tamada博客中的Android Custom ListView with Image and Text using Volley 终于效果 这个ListView呈现了一些影 ...

  2. 使用apt-get命令,出现“无法获得锁”的问题

    参考地址 http://blog.csdn.net/namecyf/article/details/7297168

  3. 百度订单Api注意事项

    背景介绍: 申请的百度地图API,采用javascript sdk方式 页面引用 问题1:更换域名导致定位插件不能用 需要修改百度地图-应用中的白名单设置,按照规则添加新的域名 问题2:http与ht ...

  4. 烂笔头-Spring3

    1.spring相关jar包的导入 2.配置文件bean.xml <?xml version="1.0" encoding="UTF-8"?> &l ...

  5. Go & SQLite on Windows

    一般golang使用的sqlite驱动包都是github.com/mattn/go-sqlite3,但是官方并没有直接支持windows平台的编译,因为windows平台编译默认需要gcc支持 其实解 ...

  6. MonogoDB----Date()

    以字符串或日期对象的形式返回日期. 使用new Date(),插入的是一个isodate类型:而使用Date()插入的是一个字符串类型. 那isodate是什么日期类型的?我们看这2个值,它比字符串大 ...

  7. [Android]反编译apk + eclipse中调试smali

    从来没有想过反编译apk是来的如此方便,并且还可以修改后重新编译运行,这比在win下修改pe容易多了,感谢apktool和smali工具的作者提供这么好的工具. 跟踪apk一般的做法是在反编译的sma ...

  8. json.dumps 和 json.dump的区别,load和loads的区别

    json.dumps 和 json.dump的区别,load和loads的区别

  9. You must reset your password using ALTER USER

    mac mysql error You must reset your password using ALTER USER statement before executing this statem ...

  10. php5.4 的 php-fpm 的重启

    php 5.3.3以后 源码中已经内嵌了 php-fpm,不用象以前的php版本一样专门打补丁了,只需要在configure的时候添加编译参数即可. 关于php-fpm的编译参数有 –enable-f ...