定义一个父类person,封装两个属性姓名和年龄;定义一个子类son继承于person,封装一个属性为学校,并在其中重写tostring()方法。定义一个测试类testson,通过无参构造方法创造一个
时间: 2023-05-31 19:20:37 浏览: 196
### 回答1:
person类和son类的定义如下:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Son extends Person {
private String school;
public Son(String name, int age, String school) {
super(name, age);
this.school = school;
}
public String getSchool() {
return school;
}
@Override
public String toString() {
return "Son{" +
"name='" + getName() + '\'' +
", age=" + getAge() +
", school='" + school + '\'' +
'}';
}
}
```
测试类TestSon的代码如下:
```
public class TestSon {
public static void main(String[] args) {
Son son = new Son("小明", 10, "小学");
System.out.println(son.toString());
}
}
```
输出结果为:
```
Son{name='小明', age=10, school='小学'}
```
### 回答2:
定义一个父类person,封装两个属性姓名和年龄,可以使用Java的访问修饰符设置为private,然后提供公共的get和set方法来设置和获取属性。例如:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
}
```
然后定义一个子类son继承于person,封装一个属性为学校,同样可以使用private访问修饰符来封装,然后提供公共的get和set方法。在子类中重写toString()方法,用来返回该对象的字符串表示。例如:
```
public class Son extends Person {
private String school;
public Son(String name, int age, String school) {
super(name, age);
this.school = school;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
@Override
public String toString() {
return "Son{" +
"name='" + getName() + '\'' +
", age=" + getAge() +
", school='" + school + '\'' +
'}';
}
}
```
最后定义一个测试类TestSon,通过无参构造方法创建一个对象实例,可以通过对象的get和set方法来设置和获取其属性,如下所示:
```
public class TestSon {
public static void main(String[] args) {
Son son = new Son("张三", 18, "华中科技大学");
System.out.println(son.toString());
}
}
```
运行结果为:
```
Son{name='张三', age=18, school='华中科技大学'}
```
这里使用了对象的toString()方法来打印出对象的属性值,实际上toString()方法是一个被所有Java对象实现的方法,在Object类中定义,返回该对象的字符串表示。因此在子类中重写该方法来返回子类对象的字符串表示就可以方便地输出对象的属性值了。
### 回答3:
面向对象编程将现实世界的实体和事物抽象成类,通过继承、封装、多态等特性实现代码的复用和灵活性。在本题中,需要定义一个父类Person,一个子类Son,并在测试类TestSon中测试子类。
1. 定义父类Person
父类Person封装两个属性,姓名和年龄。通过getter和setter方法实现对属性的封装。示例代码如下:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
}
```
2. 定义子类Son
子类Son继承于父类Person,封装一个属性学校,并重写toString()方法。重写toString()方法用于输出对象的信息,方便测试类的使用。示例代码如下:
```java
public class Son extends Person {
private String school;
public Son(String name, int age, String school) {
super(name, age);
this.school = school;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
@Override
public String toString() {
return "姓名:" + getName() + ",年龄:" + getAge() + ",学校:" + school;
}
}
```
3. 定义测试类TestSon
测试类TestSon通过无参构造方法新建一个Son对象,设置属性并输出信息。示例代码如下:
```java
public class TestSon {
public static void main(String[] args) {
Son son = new Son("张三", 12, "第一小学");
System.out.println(son.toString());
}
}
```
以上是本题的解答,通过定义父类和子类,实现了对属性的封装和继承,通过测试类的使用验证了代码的正确性。
阅读全文