用python,、1.创建Person类,有姓名、年龄(私有)、性别(私有)3个属性,创建方法personInfo,打印这个人的信息。 2.创建Student类,继承Person类,有学院college、班级banji两个私有属性,重写父类personInfo方法,其中将学生的姓名、年龄、性别、学院、班级信息全部打印出来。 创建study方法(参数为Teacher对象),打印“我是xx,老师zzz,我终于学会了!” zzz为老师的teach方法返回的信息。 3.创建Teacher类,继承Person类,属性有学院college,专业professional,重写父类personInfo方法,其中将老师的姓名、年龄、性别、学院、专业信息打印出来。 创建teach方法,返回字符串“今天讲了如何用面向对象设计程序”。 4.创建两个学生对象,创建一个老师对象。 5.两个学生对象分别调用study方法。 6.将三个对象添加至列表中,通过循环将列表中的对象的个人信息打印出来。
时间: 2023-06-26 19:06:19 浏览: 263
代码如下:
```python
class Person:
def __init__(self, name, age, gender):
self.name = name
self.__age = age
self.__gender = gender
def personInfo(self):
print("姓名:{},年龄:{},性别:{}".format(self.name, self.__age, self.__gender))
class Student(Person):
def __init__(self, name, age, gender, college, banji):
super().__init__(name, age, gender)
self.__college = college
self.__banji = banji
def personInfo(self):
super().personInfo()
print("学院:{},班级:{}".format(self.__college, self.__banji))
def study(self, teacher):
print("我是{},老师{},我终于学会了!".format(self.name, teacher.teach()))
class Teacher(Person):
def __init__(self, name, age, gender, college, professional):
super().__init__(name, age, gender)
self.__college = college
self.__professional = professional
def personInfo(self):
super().personInfo()
print("学院:{},专业:{}".format(self.__college, self.__professional))
def teach(self):
return "今天讲了如何用面向对象设计程序"
s1 = Student("张三", 20, "男", "信息科学与技术学院", "计算机科学与技术1班")
s2 = Student("李四", 21, "男", "信息科学与技术学院", "计算机科学与技术2班")
t1 = Teacher("王老师", 35, "男", "信息科学与技术学院", "计算机科学与技术")
s1.study(t1)
s2.study(t1)
person_list = [s1, s2, t1]
for person in person_list:
person.personInfo()
```
输出结果如下:
```
我是张三,老师今天讲了如何用面向对象设计程序,我终于学会了!
我是李四,老师今天讲了如何用面向对象设计程序,我终于学会了!
姓名:张三,年龄:20,性别:男
学院:信息科学与技术学院,班级:计算机科学与技术1班
姓名:李四,年龄:21,性别:男
学院:信息科学与技术学院,班级:计算机科学与技术2班
姓名:王老师,年龄:35,性别:男
学院:信息科学与技术学院,专业:计算机科学与技术
```
阅读全文