在现有People类定义的基础上,完成如下继承功能。 (1)以People类为父类,创建一个子类Teacher,增加属性:薪水 salary和电话 tel。 (2)重写People类中的work()方法,输出'在授课’ (3)增加一个带参数方法play(),输出在从事参数表示的某项运动。
时间: 2024-03-16 20:48:06 浏览: 70
好的,根据您的要求,我为您编写了如下代码:
```
class People:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def work(self):
print('在工作')
class Teacher(People):
def __init__(self, name, age, gender, salary, tel):
super().__init__(name, age, gender)
self.salary = salary
self.tel = tel
def work(self):
print('在授课')
def play(self, sport):
print('在从事{}运动'.format(sport))
```
在上面的代码中,我们创建了一个名为People的类,并在其基础上创建了一个名为Teacher的子类。Teacher类增加了两个新属性:salary和tel,同时重写了People类中的work()方法,输出“在授课”。另外还增加了一个带参数方法play(),用于输出从事某项运动的信息。
希望这个代码能够满足您的需求。如果您还有其他问题,请随时提出。
相关问题
在现有People类定义的基础上,完成如下继承功能。 (1)以People类为父类,创建一个子类Teacher,增加属性:薪水和电话。 (2)重写People类中的work()方法,输出“在授课”。 (3)增加一个带参的方法play(),输出在从事参数表示的某项运动。
根据您的要求,可以按照以下步骤完成继承功能:
1.定义一个People类,其中包含一些属性和方法。
```python
class People:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def work(self):
print("在工作")
```
2.创建一个子类Teacher,使用关键字`class`和子类的名称,然后在括号中指定父类的名称。
```python
class Teacher(People):
def __init__(self, name, age, gender, salary, phone):
super().__init__(name, age, gender)
self.salary = salary
self.phone = phone
def work(self):
print("在授课")
def play(self, sport):
print("在从事", sport)
```
3.在子类中添加新的属性和方法。
在子类的构造函数中,我们使用`super()`函数来调用父类的构造函数,并将必要的参数传递给它。我们还添加了两个新的属性`salary`和`phone`。在上面的示例中,我们重写了`work()`方法,并在其中输出了“在授课”。我们还添加了一个名为`play()`的新方法,它带有一个参数`sport`,并在其中输出“在从事某项运动”。
java在原来写的student类、teacher类和people类的基础上,将父类people类中的部分方法重写,部分成员变量隐藏。
好的,你可以先在people类中定义需要被重写的方法,并将需要隐藏的成员变量定义为private。接下来,在子类中使用@Override注解重写父类中的方法,并使用super关键字来调用父类中被重写的方法。同时,在子类中新增自己的成员变量和方法以满足特定需求。以下是示例代码:
```java
public class People {
private String name;
private int age;
public People(String name, int age) {
this.name = name;
this.age = age;
}
public void introduce() {
System.out.println("My name is " + name + ", and I am " + age + " years old.");
}
public void work() {
System.out.println("I am working.");
}
}
public class Student extends People {
private String school;
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
@Override
public void introduce() {
System.out.println("I am a student. My name is " + getName() + ", and I am " + getAge() + " years old. I study at " + school + ".");
}
public void study() {
System.out.println("I am studying.");
}
}
public class Teacher extends People {
private String subject;
public Teacher(String name, int age, String subject) {
super(name, age);
this.subject = subject;
}
@Override
public void introduce() {
System.out.println("I am a teacher. My name is " + getName() + ", and I am " + getAge() + " years old. I teach " + subject + ".");
}
public void teach() {
System.out.println("I am teaching.");
}
}
```
在子类中重写父类中的方法时,需要注意以下几点:
1. 访问修饰符不能比父类中的更严格;
2. 返回类型必须与父类中的相同或是其子类;
3. 方法名和参数列表必须与父类中的相同。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)