7-2 Java类的继承-this与super 分数 10 作者 李建华 单位 石家庄铁道大学 某段完整代码运行的输出结果如样例所示。 目前这段代码缺失了一部分,请你补全。 注:输出字符时注意大小写。 class Actor { protected
时间: 2024-12-25 20:24:38 浏览: 3
在Java中,`Actor` 类是一个基础类,通常我们使用 `extends` 关键字来实现类之间的继承关系。`this` 和 `super` 是两个关键字,分别用于引用当前对象自身和父类对象。
`this` 主要在构造函数内部使用,用于区分实例变量和参数,或者在成员方法中引用当前对象的状态。而 `super` 则是在子类构造函数中调用父类构造函数的关键字,确保父类的初始化先于子类。
在这个缺失的代码片段中,可能是为了演示如何在子类中使用 `this` 和 `super`:
```java
class Actor {
protected String name;
protected int age;
// 这里省略了无参构造函数和可能的其他方法
public Actor(String name, int age) {
this.name = name; // 使用 this 引用当前对象的 name 属性
super.age = age; // 使用 super 调用父类的构造函数并设置 age
}
// 示例输出
@Override
public String toString() {
return "Actor{" +
"name='" + (name != null ? name.toUpperCase() : "NULL") + '\'' +
", age=" + super.age + // 使用 super 输出父类的 age
'}';
}
}
// 子类继承 Actor
class FilmStar extends Actor {
private String特长;
// 假设FilmStar有一个带特长的构造函数
public FilmStar(String name, int age, String specialty) {
super(name, age); // 调用父类的构造函数传递参数
this.特长 = specialty; // 使用 this 设置子类特有的属性
}
// ... 其他可能的方法
}
// 创建一个FilmStar对象并打印
public static void main(String[] args) {
FilmStar star = new FilmStar("李小龙", 32, "武术");
System.out.println(star);
}
```
当上述代码运行时,`main` 函数会创建一个 `FilmStar` 对象,并调用 `toString` 方法,输出类似于:
```
Actor{name='LI LIAO', age=32}
```
阅读全文