102.继承案例一

继承案例一

我们像要编写一个网站,网站只有三个页面,首页,新闻页,产品展示页,我们可能进行如下实现

1.首页
#首页
class HomePage(object):
    #头部信息
    def header(self):
        print("头部信息!")

    #底部信息
    def footer(self):
        print("底部信息!")

    #主体部分
    def body(self):
        print("首页主体部分内容")
2.新闻页
#新闻页
class NewsPage(object):
    #头部信息
    def header(self):
        print("头部信息!")

    #底部信息
    def footer(self):
        print("底部信息!")

    #主体部分
    def body(self):
        print("新闻页主体部分内容")
3.产品页
#产品页
class ProductPage(object):
    #头部信息
    def header(self):
        print("头部信息!")

    #底部信息
    def footer(self):
        print("底部信息!")

    #主体部分
    def body(self):
        print("产品页主体部分内容")

以上实现,我们可以发现,三个页面,除了主体部分不同之外,那么头部和底部信息是完全一致的,但是三个页面我们需要写上相同的代码,当我的头部和底部发生改变的时候,那么就需要每个页面都要更改,维护量和维护难度就增加不少。假如网站有10000个页面,那么这个维护量是灾难性的重复劳动。

如何解决呢?我们可以将公共部分剥离出去,单独写一个类,让其他页面继承这个公共页面.

#公共部分
class BasePage(object):
    #头部信息
    def header(self):
        print("头部信息!")

    #底部信息
    def footer(self):
        print("底部信息!")

#首页
class HomePage(CommonPage):
    #主体部分
    def body(self):
        print("首页主体部分内容")

#新闻页
class NewsPage(CommonPage):
    #主体部分
    def body(self):
        print("新闻页主体部分内容")

#产品页
class ProductPage(CommonPage):
    #主体部分
    def body(self):
        print("产品页主体部分内容")

例子:

# 自定义一个基类
class BasePage(object):
    # 头部
    def header(self):
        print("新年头部")

    # 底部
    def footer(self):
        print("新年底部")

# 自定义一个首页类
class HomePage(BasePage):

    # 中间部分
    def boby(self):
        print("首页中间部分")

# 自定义一个新闻页
class NewsPage(BasePage):

    # 中间部分
    def boby(self):
        print("新闻中间部分")


# 自定义一个产品页
class ProductPage(BasePage):

    # 中间部分
    def boby(self):
        print("产品中间部分")

pp = ProductPage()
pp.header()
pp.boby()
pp.footer()
原文地址:https://www.cnblogs.com/kangwenju/p/12878160.html