对象是特征(变量)与技能(函数)的结合体
是一系列对象共同的特征与技能的集合体
class teacher:

    lesson = "python"

    def __init__(self,name,color,age):  # 只干初始化的活
self.name = name
if not isinstance(name,str):
raise TypeError
self.color = color
self.age = age def jineng(self):
print('新技能') t1 = teacher('as','pink',13) # t1可以成为teacher类的一个实例,或对象
class teacher:
# 特征
school = 'oldboy'
lesson_default = 'python' # 技能
def __init__(self,name,age,sex,lesson2):
self.name = name
self.age = age
self.sex = sex
self.lesson2 = lesson2
def speak(self):
print('讲课')
def eat(self):
print('吃饭') t1 = teacher('alex','','男','运维')
t2 = teacher('egon','','男','运维')

类的用法一:实例化产生对象
类的用法二:属性引用
print(teacher.__dict__) # 对象的属性
# 类的属性 # 属性,就是一个字典
# 对象查看一个属性,先从对象属性找,如果没有,就从类找
继承:
继承是用来创建新的类的一种方式,好处是可以减少重复代码
继承是类与类之间的关系,是一种什么是什么的关系
class People:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def walk(self):
print('%s is walking' %self.name)
def foo(self):
print('from father %s' %self.name) class Teacher(People):
school = 'oldboy'
def __init__(self,name,age,sex,level,salary):
People.__init__(self,name,age,sex)
self.level = level
self.salary = salary
def bar(self):
People.foo(self)
print('from teacher') class Student(People):
pass t = Teacher('egon',13,'male',10,3000)
# print(t.name,t.age)
print(t.__dict__)
t.walk()
t.bar()
组合
组合是一种什么有什么的关系
class People:
def __init__(self, name, age, year, mon, day):
self.name = name
self.age = age
self.birth = Date(year, mon, day)   # 组合 def walk(self):
print('%s is walking' % self.name) class Date:
def __init__(self, year, mon, day):
self.year = year
self.mon = mon
self.day = day def tell_birth(self):
print('出生于<%s>年 <%s>月 <%s>日' % (self.year, self.mon, self.day)) class Teacher(People):
def __init__(self, name, age, year, mon, day, level, salary):
People.__init__(self, name, age, year, mon, day)
self.level = level
self.salary = salary def teach(self):
print('%s is teaching' % self.name) class Student(People):
def __init__(self, name, age, year, mon, day, group):
People.__init__(self, name, age, year, mon, day)
self.group = group def study(self):
print('%s is studying' % self.name) t = Teacher('egon', 12, 1991, 12, 12, 10, 1000)
t.teach()
t.walk()
print(t.level)
print(t.birth.tell_birth())

接口
1.子类必须要有父类的方法
2.子类实现的方法必须跟父类的方法的名字一样
class File:#定义接口Interface类来模仿接口的概念,python中压根就没有interface关键字来定义一个接口。
def read(self): #定接口函数read
pass def write(self): #定义接口函数write
pass class Txt(File): #文本,具体实现read和write
def du(self):
print('文本数据的读取方法') def xie(self):
print('文本数据的读取方法') class Sata(File): #磁盘,具体实现read和write
def read(self):
print('硬盘数据的读取方法') def write(self):
print('硬盘数据的读取方法') class Process(File):
def read(self):
print('进程数据的读取方法') def write(self):
print('进程数据的读取方法') txt=Txt()
disk=Sata()
process=Process() txt.du()
# disk.read()
# process.read()


子类实现的方法必须跟父类的方法的名字一样
import abc

class File(metaclass=abc.ABCMeta):
@abc.abstractmethod
def read(self):
pass @abc.abstractmethod
def write(self):
pass class Txt(File): # 文本,具体实现read和write
def read(self):
pass def write(self):
pass t = Txt()
 
 

python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法的更多相关文章

  1. [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序、菱形问题、继承原理、Mixins机制),组合]

    [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序.菱形问题.继承原理.Mixins机制),组合] 继承应用 类与类之间的继承指的是什么'是'什么的关系(比如人类,猪类 ...

  2. Python3 面向对象-类的继承与派生

    1.什么是继承? 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类可称为基类或超类,新建的类称为派生类和或子类. 子类会遗传父类的属性,从而解决代码重用问题. ...

  3. python面向对象编程 继承 组合 接口和抽象类

    1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的 ...

  4. Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  5. 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)

    [源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...

  6. python 面向对象之继承与派生

    一:初识继承 1,什么是继承? 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类 ...

  7. python面向对象的继承-组合-02

    *面向对象(OOP)的三大特征:**# 封装.继承.多态 继承 什么是继承 继承:# 是一种关系,描述两个对象之间什么是什么的什么的关系 例如:麦兜.佩奇.猪猪侠.猪刚鬣,都是猪 为什么要使用继承 继 ...

  8. python面向对象之继承与派生

    一.继承 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承,如果是多继承的 ...

  9. Python面向对象编程——继承与派生

    Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...

随机推荐

  1. 【个人训练】(POJ3279)Fliptile

    最近在刷kuangbin神犇的各种套题....感觉自己好弱啊.....还是要多多训练,跟上大神的脚步.最近的这十几题都比较水,记下来这一条我比较印象深刻.也比较难的题目吧(之后应该不会再有水题写了,珍 ...

  2. java 读取配置文件 与更新

    笔记 public class Config { private static Properties props = new Properties(); static File configFile ...

  3. web3无法安装的额解决方案-----yarn命令安装web3

    凡是可以用 JavaScript 来写的应用,最终都会用 JavaScript 来写. --Atwood定律(Jeff Atwood在2007年提出) yarn命令详解 https://yarnpkg ...

  4. DFS——CodeForces740DAlyona and a tree

    一.题目回顾 题目链接:Alyona and a tree Examples Input 52 5 1 4 61 71 13 53 6 Output 1 0 1 0 0   Input 59 7 8 ...

  5. 第十五次ScrumMeeting会议

    第十五次Scrum Meeting 时间:2017/12/5 地点:主201 人员:全体成员 目前工作情况 名字 完成的工作 计划工作 蔡帜 -- -- 游心 完成Scrum会议记录,更新wiki游戏 ...

  6. ssh问题_2

    前一段时间配置hadoop集群环境,发现一个现象,教程中的命令形式是ssh hostname,当然这个hostname应该是在ssh发起者的hosts文件中和相应的IP对应:现在问题来了: 我用的是m ...

  7. java面向对象课程设计-数学表达式计算器

    项目简介 设计一个计算器,其能够: 1)由用户输入一个简单的四则运算表达式,求出其计算结果后显示. 2)特殊数学函数,如:绝对值.取整.三角函数.倒数.平方根.平方.立方等. 3)对一定范围内的数字将 ...

  8. pta指针作业

    #PTA实验作业 6-1 本题pta提交列表 设计思路 本题是一道简单的指针程序题,两个数已经分别被指针定义,只要把用其指针把二者加在一起和减去即可 调试过程 本题无调试过程 代码截图 6-2  1. ...

  9. 【UML】状态图介绍

    1.Statechart Diagram 即状态图,主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列.引起状态转移的事件(Event).因状态转移而伴随的动作(Action) ...

  10. stap中的entry函数

    只有在ret probe函数中,在这个函数中才会使用@entry函数去提取变量 是因为ret probe 有什么特殊的吗?在中间这个变量会变化吗? A new operator, @entry, is ...