首页 > 试题广场 >

分析以下代码 class Person { construc

[单选题]
分析以下代码
class Person {
 constructor(name) {
   this.name = name;
 }  
 sayHello() {
   console.log(`Hello, my name is ${this.name}.`);
 }
}
class Student extends Person {

 constructor(name, grade) {
   super(name);
   this.grade = grade;
 }  
 study() {
     console.log(`I am studying in grade ${this.grade}.`);
 }
}
下列说法正确的是
  • 代码中Student和Person是两个独立的类
  • super(name)作用是调用父类的构造函数来初始化实例的 name 属性
  • Person继承自Student类
  • 上述代码中可以创建Student实例但不能创建Person实例

正确答案是 B

  • A 错误:Student类通过extends关键字继承了Person类,它们不是独立的,而是存在继承关系。

  • B 正确:super(name)在子类构造函数中调用父类的构造函数,用于初始化从父类继承的属性(如name)。

  • C 错误:代码中明确是Student extends Person,即Student继承自Person,而非相反。

  • D 错误:代码中Person和Student都可以被实例化,例如new Person('Alice')和new Student('Bob', 10)都是有效的。

发表于 今天 09:45:27 回复(0)