首页 » Python » python | 面向对象 | 继承

python | 面向对象 | 继承

原文 http://blog.csdn.net/qq_36409509/article/details/79189363

2018-01-29 02:00:49阅读(627)

# encoding: utf-8
import abc
# ************************************************继承************************************************
# 1 继承的三种形态:
#               单继承
#               无重叠的多继承(资源访问顺序按遵循单调性)
#               有重叠的多继承
# 2 ************************************************
#  super
# 沿着MRO链条,找到下一级方法,调用对应的方法
class D:
    def __init__(self):
        print("d")
class C(D):
    def __init__(self):
        super(C, self).__init__()
        print("c")
class B(D):
    def __init__(self):
        super(B, self).__init__()
        print("b")
class A(B, C):
    def __init__(self):
        super(A, self).__init__()
        print("a")
A()
# 3 ************************************************
# 抽象类
class Animal(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def call(self):
        pass
    @abc.abstractclassmethod
    def test(cls):
        pass
class Dog(Animal):
    def call(self):
        print("wang wang wang")
    @classmethod
    def test(cls):
        print(cls.__dict__)
class Cat(Animal):
    def call(self):
        print("miao miao miao")
    @classmethod
    def test(cls):
        print(cls.__dict__)
d = Dog()
c = Cat()
c.call()
d.call()

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹