用Python编写代码,定义一个Person类,该类包含实例属性name(姓名),gender(性别)和age(年龄),还包含实例方法showlnfo(),用于输出3个实例属性;以Person类为基础定义一个Student类,新增3个实例属性,即sid(学号)、chn(语文)和math(数学),并对实例方法showlnfo()进行重写,用于输出6个实例属性。
时间: 2024-02-12 21:07:01 浏览: 72
好的,根据您的要求,以下是Python代码实现:
```python
class Person:
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
def showlnfo(self):
print("姓名:", self.name)
print("性别:", self.gender)
print("年龄:", self.age)
class Student(Person):
def __init__(self, name, gender, age, sid, chn, math):
super().__init__(name, gender, age)
self.sid = sid
self.chn = chn
self.math = math
def showlnfo(self):
super().showlnfo()
print("学号:", self.sid)
print("语文成绩:", self.chn)
print("数学成绩:", self.math)
```
在上述代码中,我们先定义了一个Person类,包含了三个实例属性和一个实例方法showlnfo()。接着,我们定义了一个Student类,它继承自Person类,并新增了三个实例属性和一个重写后的实例方法showlnfo(),用于输出6个实例属性。
在类的定义中,我们使用了`super()`函数来调用父类的构造函数和showlnfo()方法。这样,我们就可以在子类中继承父类的属性和方法,并进行一些定制化的修改。
最后,我们可以创建一个Student对象,并调用它的showlnfo()方法,来查看输出结果:
```python
s = Student("张三", "男", 18, "20210001", 90, 85)
s.showlnfo()
```
输出结果为:
```
姓名: 张三
性别: 男
年龄: 18
学号: 20210001
语文成绩: 90
数学成绩: 85
```
阅读全文