定义person类 属性:名字,性别,年龄,身份证号行为:交流定义学生类继承人类

定义person类
属性:名字,性别,年龄,身份证号行为:交流定义学生类继承人类
属性:学号,班级,行为:学习
定义测试(Text)类
在测试类主函数(main)中,创建一个学生
类对象,在控制台上输出,学生对象的所有
信息


#include<iostream>
#include<string.h>
using namespace std;
class Person{
    public:
        string name;
        string sex;
        string nationality;
        int age;
    
  // 构造函数,用来初始化对象的属性
 Person(string na,string se,int ag,string national){
    name= na;
    sex = se;
    age = ag;
    nationality = national;
  }
  void eat()
  {
      cout<<"Everyone need eat."<<endl;
  }
  void sleep(double time)
  {
      if(time>23.30)
      {
          cout<<"You went to bed too late. You should go to bed early."<<endl;
      }
      else
      {
          cout<<"还没到睡觉时间!"<<endl;
      }
  }
  void sleep(int time)
  {
      if(time<7)
      {
          cout<<"你睡的太少了,这样会变傻的!"<<endl;
      }
      else
      {
          cout<<"你的睡眠充足!"<<endl;
      }
  }
  void work()
  {
      cout<<"Everyone need work."<<endl;
  }
  void print() 
  {
      cout<<"姓名:"<<name<<endl; 
    cout<<"性别:"<<sex<<endl;
    cout<<"年龄:"<<age<<endl;
    cout<<"国籍:"<<nationality<<endl;
  }
};
class student:public Person{
    public:string school;
    string number;
    student(string na,string se,int ag,string national,string sch,string num):Person(na,se,ag,national)
    {
        school=sch;number=num;
    }
    void work()
    {
        cout<<"I will good good study, day day up."<<endl;
    }
     void print() 
  {
      cout<<"学校:"<<school<<endl;
      cout<<"姓名:"<<name<<endl; 
      cout<<"学号:"<<number<<endl;
    cout<<"性别:"<<sex<<endl;
    cout<<"年龄:"<<age<<endl;
    cout<<"国籍:"<<nationality<<endl;
  } 
 
};
class worker:public Person{
    private:
        string danwei;
        int goling;
    public:worker(string na,string se,int ag,string national,string da,int gl):Person(na,se,ag,national)
    {
        danwei=da;goling=gl;
    }
    void fagongzi(int time)
    {
        if(time<6)
        {
            cout<<"工人的工资为3500元."<<endl;
        }
        else if(time>=6 &&time<8)
        {
            cout<<"工人的工资为4500元"<<endl; 
        }
        else if(time>=8 &&time<=10)
        {
            cout<<"工人的工资为6000元"<<endl; 
        }
        else
        {
            cout<<"输入的工作时间有误!!!" <<endl;
        }
        
    }
     void print() 
  {
      cout<<"姓名:"<<name<<endl; 
    cout<<"性别:"<<sex<<endl;
    cout<<"年龄:"<<age<<endl;
    cout<<"国籍:"<<nationality<<endl;
    cout<<"单位:"<<danwei<<endl;
    cout<<"工龄:"<<goling<<endl; 
  }
    
};
class studentleading:public student{
    private:string job;
    public:
    studentleading(string na,string se,int ag,string national,string sch,string num,string j):student(na,se,ag,national,sch,num)
    {
        job=j;
    }
    void print()
    {
    cout<<"学校:"<<school<<endl;
      cout<<"姓名:"<<name<<endl; 
      cout<<"学号:"<<number<<endl;
    cout<<"性别:"<<sex<<endl;
    cout<<"年龄:"<<age<<endl;
    cout<<"工作:"<<job<<endl;
    cout<<"国籍:"<<nationality<<endl;
    }
    void meeting()
    {
        cout<<"学生会经行开会!"<<endl;
    }
    
};
int main()
{
    Person p1("小王","男",18,"中国");//共同属性 
    p1.print();//输出共用属性。 
    p1.sleep(7) ;//调用公用的时间。 
    cout<<"**********************"<<endl; //学生类 
    student st1("小天","女",17,"中国","希望中学","1002");
    st1.print();
    cout<<"**********************"<<endl; //工人类
    worker w1("小李","男",25,"中国","流水线部门",3);
    w1.print();
    w1.fagongzi(8);
    cout<<"**********************"<<endl; //学生会部门类
    studentleading s1("小明","男",17,"中国","希望中学","1001","学生会");
    s1.print();
    s1.meeting();
    return 0;
}

根据题目所示,定义类和方法即可.

代码如下:



package persontest;

public class Test {  // 测试类

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        // 用Student类的有参的构造方法,创建一个学生对象
        Student s1 = new Student("张三","男",22, "110101200103094955", 202303071562L, "软件工程1班");
        System.out.println(s1);  // 打印这个学生的所有信息
        
        // 用Person类有参的构造方法,创建一个Person类对象
        Person p1 = new Person("李四","男",21,"35010220020301687X");
        System.out.println(p1);  // 打印这个Person对象的所有信息
        
        //Student s2 = new Student("王五","男",23, "110101200003044956", 202303071563L, "软件工程2班");
        //System.out.println(s2);  // 打印这个学生的所有信息
        
        s1.talk(p1);  // 调用学生类对象继承至父类的交流方法
        //s1.talk(s2);  // 调用学生类对象继承至父类的交流方法
        s1.study();  // 调用学生类对象的学习方法
        
    }

}

class Person{  // 如果Person类单独放一些代码文件,可以在class前面加个public 
    
    private String name; // 姓名
    private String sex; //性别
    private int age;  //年龄
    private String ID;  // 身份证号
    
    
    
    public Person() {  // Person类无参的构造器
        
    }

    
   // Person类有参数的构造器
    public Person(String name, String sex, int age, String iD) {
        
        this.name = name;
        this.sex = sex;
        this.age = age;
        ID = iD;
    }


  //   交流方法
    public void talk(Person p) {
        
        System.out.println("\n"+this.name+"同"+p.getName()+"开始交流!");
        System.out.println(this.name+"同"+p.getName()+"交流完毕!\n");
        
    }

    // 下面是Person类各属性的set和get方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getID() {
        return ID;
    }

    public void setID(String iD) {
        ID = iD;
    }


    @Override
    // person类的toSting方法,用于打印Person类的所有成员属性
    public String toString() {
        return "人员信息 [姓名:" + this.getName() + ", 性别:" + this.getSex() + ", 年龄:" + this.getAge() + ", 身份证号:" + this.getID() + "]";
    }    
    
    
}

//如果Student类单独放一些代码文件,可以在class前面加个public 
class Student extends Person{  // 继承了Person类的学生类
    
    private long sID;  // 学号
    private String className;  // 班级
    
    
    // 无参的构造方法
    public Student() {
        
    }

    

  // 有参的构造方法
    public Student(String name, String sex, int age, String iD,long sID, String className) {
        super(name,sex,age,iD);
        this.sID = sID;
        this.className = className;
    }



  // 学习方法
    public void study() {
        System.out.println("\n"+this.getName()+"开始学习!");
        System.out.println(this.getName()+"学习完毕!\n");
    }
    
    
    // Student类各属性的get和set方法
    public long getsID() {
        return sID;
    }



    public void setsID(int sID) {
        this.sID = sID;
    }



    public String getClassName() {
        return className;
    }



    public void setcID(String className) {
        this.className = className;
    }



    @Override
    // Student类的toString方法,用于打印学生类对象的所有成员信息
    public String toString() {
        return "学生信息 [姓名:" + this.getName() + ", 性别:" + this.getSex() 
        + ", 年龄:" + this.getAge() + ", 身份证号:" + this.getID() 
        + ", 学号: "+this.getsID()+", 班级:"+this.getClassName()+"]";
        
    }    
    
    
}

img

https://blog.csdn.net/weixin_63802670/article/details/123818228
大同小异,参考下吧

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^