用java定义一个抽象类Person,有三个属性:姓名、性别、联系电话,用构造函数对三个属性进行赋初值,定义函数输出三个属性的值;
时间: 2024-04-22 22:28:48 浏览: 127
好的,我来为您演示一下:
```java
public abstract class Person {
protected String name; // 姓名
protected String gender; // 性别
protected String phone; // 联系电话
public Person(String name, String gender, String phone) {
this.name = name;
this.gender = gender;
this.phone = phone;
}
public abstract void showInfo();
}
```
在这个抽象类中,我们定义了三个属性 name、gender 和 phone,并且在构造函数中对它们进行了赋值。同时,我们还定义了一个抽象方法 showInfo(),用于输出这三个属性的值。
需要注意的是,这是一个抽象类,因此我们无法直接创建它的实例。我们需要定义一个具体的子类来实现它。
相关问题
用java(一)定义一个抽象类Person,有三个属性:姓名、性别、联系电话,用构造函数对三个属性进行赋初值,定义函数输出三个属性的值; (二)定义一个接口Person_Interface,声明一个常量为薪酬标准(自己设置一个值),声明一个方法计算薪酬(参数为天数) (三)定义一个学生类继承Person类,再增加两个属性:学号和专业,用构造函数对所有属性进行赋初值,并输出学生的所有信息; (四)定义一个教师类继承Person类并实现接口Person_Interface,定义一个工号,定义一个函数对教师的所有属性进行赋初值,并根据输入的天数结算教师薪酬,再定一个函数显示教师的所有信息。 (五)定义一个测试类,对教师类和学生类实例化,并赋初值和显示出来。
好的,以下是Java代码实现:
```java
// 定义抽象类Person
abstract class Person {
private String name;
private String gender;
private String phone;
// 构造函数,对三个属性进行赋初值
public Person(String name, String gender, String phone) {
this.name = name;
this.gender = gender;
this.phone = phone;
}
// 输出三个属性的值
public void showInfo() {
System.out.println("姓名:" + name);
System.out.println("性别:" + gender);
System.out.println("联系电话:" + phone);
}
}
// 定义接口Person_Interface
interface Person_Interface {
double SALARY_STANDARD = 5000; // 常量薪酬标准
// 计算薪酬
double calcSalary(int days);
}
// 定义学生类,继承Person类
class Student extends Person {
private String stuId;
private String major;
// 构造函数,对所有属性进行赋初值
public Student(String name, String gender, String phone, String stuId, String major) {
super(name, gender, phone);
this.stuId = stuId;
this.major = major;
}
// 输出学生的所有信息
public void showInfo() {
super.showInfo(); // 调用父类的showInfo方法
System.out.println("学号:" + stuId);
System.out.println("专业:" + major);
}
}
// 定义教师类,继承Person类并实现接口Person_Interface
class Teacher extends Person implements Person_Interface {
private String empId;
// 构造函数,对所有属性进行赋初值
public Teacher(String name, String gender, String phone, String empId) {
super(name, gender, phone);
this.empId = empId;
}
// 计算教师薪酬,实现接口中的calcSalary方法
public double calcSalary(int days) {
return SALARY_STANDARD * days;
}
// 显示教师的所有信息
public void showInfo() {
super.showInfo(); // 调用父类的showInfo方法
System.out.println("工号:" + empId);
}
}
// 定义测试类Test
public class Test {
public static void main(String[] args) {
// 实例化一个学生对象
Student student = new Student("张三", "男", "123456789", "20180001", "计算机科学");
// 实例化一个教师对象
Teacher teacher = new Teacher("李四", "女", "987654321", "T001");
// 调用showInfo方法显示学生和教师的所有信息
System.out.println("学生信息:");
student.showInfo();
System.out.println("教师信息:");
teacher.showInfo();
// 计算教师薪酬并输出
int days = 20;
double salary = teacher.calcSalary(days);
System.out.println("教师薪酬:" + salary);
}
}
```
上述代码中,`Person`是一个抽象类,包含三个属性:`name`、`gender`、`phone`,以及一个构造函数和一个输出所有属性值的方法`showInfo()`。`Person_Interface`是一个接口,声明了一个常量`SALARY_STANDARD`和一个计算薪酬的方法`calcSalary()`。`Student`和`Teacher`都继承了`Person`类,`Student`增加了两个属性`stuId`和`major`,`Teacher`增加了一个属性`empId`,并实现了`Person_Interface`接口中的方法`calcSalary()`。`Test`类包含了`main`方法,在`main`方法中实例化了一个`Student`对象和一个`Teacher`对象,并分别给它们赋初值。最后,调用它们的`showInfo()`方法显示它们的所有信息,并计算教师薪酬并输出。
在同一个包 package gench 中,定义以下三个类 (1)定义一个接口 Person,其中包含一个抽象方法 public void display(); (2)定义 Person 的实现类 Teacher,以及实现类 Bmp loyee, Teacher 类包含 String sub ject 数据成员和有参构造方法,Employee 类包含 String department 和有参构造方法,在两个实现类中重写 display 0方法,打印自己的数据成员信息。 (3)定义主类 MainClass,包含主两数,在主函数中定义一个接口引用,名为ob,让其分别指向 新生成的 Teacher 和 Employee 的対象,并調用 display(函数,打印所指向対象的信息。
好的,我理解了你的问题。以下是代码实现:
```java
// Person 接口
interface Person {
void display();
}
// Teacher 类实现 Person 接口
class Teacher implements Person {
private String subject;
public Teacher(String subject) {
this.subject = subject;
}
@Override
public void display() {
System.out.println("I am a teacher, and my subject is " + subject);
}
}
// Employee 类实现 Person 接口
class Employee implements Person {
private String department;
public Employee(String department) {
this.department = department;
}
@Override
public void display() {
System.out.println("I am an employee, and my department is " + department);
}
}
// 主类 MainClass
public class MainClass {
public static void main(String[] args) {
Person ob1 = new Teacher("Math");
ob1.display();
Person ob2 = new Employee("HR");
ob2.display();
}
}
```
运行结果:
```
I am a teacher, and my subject is Math
I am an employee, and my department is HR
```
阅读全文