以下是使用 Java 实现的代码: ```java package gc; class Person { private String name; private int age; private String gender; // 无参构造方法 public Person() { } // 有参构造方法 public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public void info() { System.out.println("姓名:" + name + ",年龄:" + age + ",性别:" + gender); } } class TestInherit { public static void main(String[] args) { // 创建教师对象 Teacher teacher = new Teacher("张老师", 35, "女", "副教授"); teacher.info(); teacher.setRank("教授"); teacher.info(); // 创建学生对象 Student student = new Student("张恒", 19, "男", "工程技术学院"); student.info(); student.setSchool("湖北工业大学工程技术学院"); student.info(); } } package gc.zg; class Teacher extends Person { private String rank; // 构造方法 public Teacher(String name, int age, String gender, String rank) { super(name, age, gender); this.rank = rank; } public String getRank() { return rank; } public void setRank(String rank) { this.rank = rank; } @Override public void info() { super.info(); System.out.println("职称:" + rank); } } class Student extends Person { private String school; // 构造方法 public Student(String name, int age, String gender, String school) { super(name, age, gender); this.school = school; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } @Override public void info() { super.info(); System.out.println("学校:" + school); } } ``` 对于思考 1:如果不允许将属性设置为 `public`,一般设置为 `private` 或者使用 `protected` 。`private` 表示只能在当前类中访问,`protected` 可以在当前类、子类以及同一个包中的其他类访问。 对于思考 2:将属性设置为私有的是合适的,符合封装的原则,可以更好地控制属性的访问和修改,提高代码的安全性和可维护性。通过提供 `get` 和 `set` 方法来控制属性的读写操作。 [2024-10-16 18:40:42 | AI写代码神器 | 745点数解答]