human
I am working on the file "Python 基础课程/draft/python_basic_2/Python - 面向对象编程 01.ipynb".
The first task is:
在子类中，可以覆盖父类的方法。
比如 __init__() ，我们需要在 Soldier 类的初始化中加入一个只有 soldier 才有的级别 level 属性。
所以，我们先调用父类的__init__() 方法，再写 Soldier 类需要的代码。
而 show_properties()方法，我们先用简单的办法，完全覆盖，也就是使用这个新的show_properties()方法，来显示 NPC 标准的三个属性以及 Soldier 的一个独立属性。
Can you write Python program for it?

=====
Give me a the Python program you requested?
assistant
#Here is the Python program you requested.

# 战士 Soldier 类
class Soldier(NPC):
    
    # 建立 soldier 的初始化
    def __init__(self, name):
        # 调用 父类 NPC 的初始化方法
        NPC.__init__(self, name)
        
        # soldier 自己的初始化
        self.soldier_level = 1
        
    # 定义方法 - 显示 NPC 属性
    def show_properties(self):
        print('name:', self.name)
        print('weapon:', self.weapon)
        print('blood:', self.blood)
        print('soldier_level:', self.soldier_level)

# 创建一个 Soldier 类， 作为 NPC 的子类
n1 = Soldier('AA2')
n1.show_properties()
n1.fight_common()