类和子类的简单实现
1、问题描述:
- 设计一个名为
Person
的类和它的两个名为Student
和Employee
的子类。 每个人都有姓名和电话号码,学生类有年级状态(大一、大二、大三或大四),员工有工资。重写每个类中的toString
方法,显示该类的所有属性。面积。
2、实现思路:
- 创建
Person
类 ,为其添加姓名(name)、电话号码(phone)这两个属性,这两个属性皆为String
类型,分别为每个属性添加对应的 get 和 set 方法。 - 创建学生类
Student
并使其继承于Person
类,为其添加String
类型的年级(grade)属性,并为该属性添加 get 和 set 方法。 - 创建员工类
Employee
并使其继承于Person
类,为其添加double
类型的工资(salary)属性。为每个属性添加 get 和 set 方法。 - 为每个类添加一个无参构造方法和一个带有全部属性的构造方法。
- 为每个类重写
toString
方法,显示该类的所有属性。 - 创建测试类
Test
并创建每个类的对象,对象信息参照「挑战提示」中的表格,打印显示每个对象的toString
方法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hm2PKunx-1622435980464)(https://dn-simplecloud.shiyanlou.com/courses/uid1509696-20210531-1622435839952)]
3、实现代码:
package org.lanqiao.entity;
public class Person {
private String name;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String toString() {
return "Person{name="+getName()+",phone=" +getPhone()+"}";
}
public Person(String name, String phone) {
this.name = name;
this.phone = phone;
}
public Person() {
}
}
package org.lanqiao.entity;
public class Student extends Person{
private String grade;
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String toString() {
return "Student{name="+getName()+",phone=" +getPhone()+", grade="+this.grade+"}";
}
public Student(String name, String phone, String grade) {
super(name, phone);
this.grade = grade;
}
public Student(String grade) {
this.grade = grade;
}
public Student(){
super();
}
}
package org.lanqiao.entity;
public class Employee extends Person {
private double salary;
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String toString() {
return "Employee{name="+getName()+",phone=" +getPhone()+", salary="+this.salary+"}";
}
public Employee(String name, String phone, double salary) {
super(name, phone);
this.salary = salary;
}
public Employee(double salary) {
this.salary = salary;
}
public Employee(){
super();
}
}
package org.lanqiao.test;
import org.lanqiao.entity.*;
public class Test {
public static void main(String[] args){
Person person=new Person("小蓝","16655557777");
Student student=new Student("小红","15588885555","大一");
Employee employee=new Employee("小白","17676765656",4000);
System.out.println(person.toString());
System.out.println(student.toString());
System.out.println(employee.toString());
}
}
4、运行结果:
建包的截图:
5、遇到的问题及解决方法:
未添加包名的时候,系统会不识别。
添加相应的包名后,VScode莫名的报错
在从新试了一下之后就没问题了