首页 > 其他 > 详细

类和对象

时间:2020-08-14 14:24:19      阅读:55      评论:0      收藏:0      [点我收藏+]

一、定义

1、类是一个抽象的概念。用来描述具有相同属性和方法的对象的集合。而对象是类的实例。可以把类看成售楼大厅中的房屋模型,而对象是实际建造出来的房子。

2、属性分成类属性和实例属性。类属性是所有实例对象共有的,而实例属性是每个对象私有的

如定义一个学生类,其中身份(学生)属性类属性,而学生的名字、性别、年龄和成绩都是实例属性,每个学生都不一样。

class Student:   定义一个学生类,类用class标识,类名的首字母要大写

  identify = "学生"   类属性:学生,是所有学生都具备的属性

 

  def __init__(self,name,sex,age,score):   实例属性,是每个学生私有的,每个人都不一样

    self.name = name

    self.sex = sex

    self.age = age

    self.score = score

3、实例化

是类产生实例对象的过程

4、实例对象

是类产生出的一个具体对象就叫实例对象,也叫对象

5、继承

继承是单向过程,通过继承产生的类可以叫做子类或派生类,而被继承的类称为父类;继承后子类具备父类的所有方法和属性,而父类不具有子类的所有方法和属性

如一个手机类具有打电话、发短信的功能,而继承后智能手机类可以具备手机类的打电话、发短信功能,但是它自身具备的拍照等功能父类却不具备

6、重写

继承类后,子类可以直接调用父类中的方法或属性,若方法不满足也可以对父类中的方法进行重写

 

二、例子

1, 定义一个类 Dog, 包含 2 个属性:名字和年龄。
定义一个方法 eat 吃东西。
定义一个类 TeddyDog, 继承 Dog 类, Teddy 在吃东西的时候还会望着你,  定义方法 watch_you.
定义一个类 BabyTeddyDog, 继承 TeddyDog,  BabyTeddy 吃东西不仅会望着你,还会四处转悠, 定义方法 go_around

 class Dog:    定义Dog类
    def __init__(self,name,age):  初始化name和age
        self.name = name
       
self.age = age

 def eat(self,food):  定义方法eat
        print("{}已经{}岁了,他正在吃{}".format(self.name,self.age,food))

 

class TeddyDog(Dog):  TeddyDog继承Dog类
    def
watch_you(self,food):   定义watch_you方法,直接使用Dog类中的eat方法
       
self.eat(food)
        print("还边在望着你")

 

class BabyTeddyDog(TeddyDog):  BabyTeddyDog继承TeddyDog类
    def
go_around(self):
       
print("还在四处转悠")

    def watch_you(self,food):  重写TeddyDog类中的watch_you方法
       
self.eat(food)
        print("不仅边在望着你")
        self.go_around()

 

TeddyDog和BabyTeddyDog类均继承了Dog类中的初始化函数,所以在调用时都要传入name和age的值

调用:

teddyDog = TeddyDog(‘Teddy‘,‘2周岁‘)
teddyDog.watch_you(‘狗粮‘)
结果:

 技术分享图片

babyTeddyDog = BabyTeddyDog(‘BabyTeddy‘,‘0.5周岁‘)
babyTeddyDog.watch_you(‘奶粉‘)
结果:
技术分享图片

 

 



类和对象

原文:https://www.cnblogs.com/xinmengying/p/13501832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!