类和实例(三)

本文深入探讨了面向对象编程中的继承与多态概念,详细解释了如何在Python中实现类的继承,包括子类如何继承父类的属性和方法,以及如何重写父类方法实现多态。同时,介绍了如何将实例作为属性使用,提供了具体的代码示例。

1.继承:在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。子类会继承父类的所有属性和方法,也可以定义自己的属性和方法。

a.创建子类时,父类必须包含在当前文件夹中,且位于子类前面

b.在定义子类时,必须在括号内指定父类的名称

2.让一个类继承另一个类后,可以添加区分子类和父类的新的属性和方法。

3.重写父类的方法:当子类和父类都存在相同的方法时,子类的方法覆盖了父类的方法,在代码运行的时候,总是会调用子类的方法。这样,我们就获得了继承的另一个好处:多态。

4.将实例用作属性

class Animal:

    def __init__(self, name):
        self.__name = name
    """内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,
       就变成了一个私有变量(private),只有内部可以访问,外部不能访问"""

    def name(self, name):
        self.__name = name
        print('my name is %s' % self.__name)

    def run(self):
        print('dog is running')


def run_twice(animal):
    animal.run()
    animal.run()


class Action:

    def action(self):
        print('this dog is rolling')


class Dog(Animal):

    def __init__(self):
        self.age = 15
        self._action = Action()
        """将类的一部分作为一个独立的类提取出来"""
        print('this a %s years old dog' % str(self.age))

    def run(self):
        print('run!')


cat = Animal('cathy')
cat.name('cathy')

dog = Dog()

dog._action.action()
run_twice(dog)

 

转载于:https://www.cnblogs.com/zhanyie/p/10726834.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值