Python面向对象-封装 继承 多态

1.使用类名创建对象的时候,创建对象,Python解释器

会自动为对象在内存中分配空间。调用初始化方法为对象的属性设置初始值

这个初始化方法是init方法

使用类名创建对象的时候哦,会自动调用初始化方法

2.继承的语法
class 类名(父类)
def 子类特意有的方法

重写父类方法有两种情况
1.覆盖父类方法 2.对父类方法进行扩展

1.覆盖父类的方法
如果在开发中,父类父类方法的实现和子类方法的实现
完全不同,就可以使用覆盖的方式
在子类中重新编写父类的方法

具体实现方式,就相当于在子类中定义了
一个和父类同名的方法并实现
重写之后 在运行时 只会调用子类的重写方法
而不会再调用父类封装的方法

对父类的方法进行扩展
如果在开发中,子类的方法实现包含父类的方法实现
(父类原本封装的方法实现是子类方法的一部分就可以
使用扩展方法)
1.在子类中重写父类的方法
2.在需要的位置使用 父类名。方法(self)来调用父类方法
的执行(使用父类名称调用父类方法)
3.代码其他的位置针对子类的需求,编写子类特有的代码实现

“””
继承的传递性:(爷爷 父亲 儿子)
1.C类从B类继承,B类又从A类继承
2.那末C类就具有B类和A类的所有属性和方法
子类具有父类及父类的父类中封装的所有属性和方法

“””
继承自己示例

class Person():
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight
    def __str__(self):
        return '我的名字叫 %s 体重是%.2f' % (self.name ,self.weight)
    def run(self):
        print '%s 爱跑步' % self.name
        self.weight -=0.5
    def eat(self):
        print '%s 吃东西' % self.name
        self.eat +=1.0

xiaoming = Person('xiaoming',50.0)
xiaoming.run()
print xiaoming

小狗爱睡觉 小狗爱乱跳示例

class dog():
    def sleep(self):
        print '小狗爱睡觉'
    def jump(self):
        print '小狗爱乱跳'

jia = dog()
jia.sleep()
jia.jump()
print jia
addr = id(jia)
#%x:打印格式为十六进制
print '%x' % addr
#%d:打印格式为十进制
print '%d' % addr

#再创建一个狗类对象
lazy_dog = dog()
lazy_dog.sleep()
lazy_dog.jump()
print lazy_dog

fool_dog = lazy_dog
print fool_dog

示例三

class Cat():
    def __init__(self,new_name):
        self.name = new_name
        print '%s 来了' % self.name
    def __del__(self):
        print '%s 走了' % self.name

tom = Cat('tom')
print tom.name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值