同时请解释System.out.println(stuPeople)和System.out.println(teaPeople)为啥能输出学生和教师信息。
时间: 2024-02-19 09:00:58 浏览: 18
在Java中,每个类都继承自父类Object,而Object类中有一个toString()方法,用于返回该对象的字符串表示。如果没有在子类中重写该方法,则默认使用Object类中的toString()方法。
在本例中,Student类和Teacher类都没有重写toString()方法,因此它们默认使用了父类People中的toString()方法,并将返回的字符串输出到控制台上。
当我们调用System.out.println(stuPeople)时,实际上是调用了System.out.println(stuPeople.toString())。由于Student类继承自People类,因此stuPeople对象实际上是一个People类型的对象,调用其toString()方法时,会输出该对象的各个属性。同样的道理,System.out.println(teaPeople)也能输出教师的信息。
相关问题
Java中System.out.println和System.err.println有什么区别
在Java中,System.out.println和System.err.println都是用于向控制台输出信息的方法,但是它们有以下区别:
1. 输出流的不同:System.out.println使用的是标准输出流(System.out),而System.err.println使用的是标准错误输出流(System.err)。
2. 输出内容的不同:System.out.println一般用于输出普通的程序运行结果等信息,而System.err.println则一般用于输出错误信息或异常堆栈信息等。
3. 输出颜色的不同:在某些操作系统中,System.err.println输出的文本颜色可能与System.out.println不同,通常System.err.println输出的文本颜色会更醒目一些。
总的来说,System.out.println和System.err.println的作用类似,但是它们输出的信息有所不同,因此在实际开发中需要根据需要选择适当的输出方法。
system.out.printf和system.out.println区别
`System.out.printf()` 和 `System.out.println()` 都是 Java 中用于输出信息的方法。它们的区别在于:
- `System.out.printf()` 是格式化输出,可以使用占位符 `%` 来控制输出的格式,比如 `%d` 表示输出整数,`%f` 表示输出浮点数等;
- `System.out.println()` 是直接输出一行字符串,不需要格式化。
举个例子,如果要输出一个整数变量 `x` 的值,可以使用以下两种方法:
```java
int x = 10;
// 使用 System.out.printf() 格式化输出
System.out.printf("x 的值为:%d\n", x);
// 使用 System.out.println() 直接输出一行字符串
System.out.println("x 的值为:" + x);
```
输出结果分别为:
```
x 的值为:10
x 的值为:10
```
需要注意的是,`System.out.printf()` 中的格式化字符串中要与后面传入的参数一一对应,否则会抛出 `java.util.MissingFormatArgumentException` 异常。