1、创建一个基类Person,用构造方法为其三个实例属性name(姓名)、gender(性别),age(年龄)初始化;实例方法showInfo0用来显示以上三个属性的值; 创建其子类Student,增加一个实例属性sid(学号),在子类的构造方法内为继承过来的属性及新增属性初始化; 增加一个实例方法,方法头为:setScores (self, chn, math,phy, chem),用来设置四门课的成绩;重写父类的showInfo0方法,显示出该生的所有信息。 写出测试代码,分别用Person类和Student类创建对象
时间: 2024-02-17 11:59:55 浏览: 24
下面是代码实现:
```python
# 定义基类 Person
class Person:
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
def showInfo0(self):
print(f"姓名:{self.name},性别:{self.gender},年龄:{self.age}")
# 定义子类 Student,继承自 Person
class Student(Person):
def __init__(self, name, gender, age, sid):
super().__init__(name, gender, age)
self.sid = sid
self.chn = None
self.math = None
self.phy = None
self.chem = None
def setScores(self, chn, math, phy, chem):
self.chn = chn
self.math = math
self.phy = phy
self.chem = chem
def showInfo0(self):
super().showInfo0()
print(f"学号:{self.sid},语文:{self.chn},数学:{self.math},物理:{self.phy},化学:{self.chem}")
# 创建 Person 类的对象
person = Person("张三", "男", 20)
person.showInfo0()
# 创建 Student 类的对象
student = Student("李四", "男", 18, "20210001")
student.setScores(90, 85, 92, 88)
student.showInfo0()
```
输出结果为:
```
姓名:张三,性别:男,年龄:20
姓名:李四,性别:男,年龄:18
学号:20210001,语文:90,数学:85,物理:92,化学:88
```